drivers/edac: fix edac_device sysfs completion code

With feedback, this patch corrects operation of the kobject release operation
on kobjects, attributes and controls for the edac_device.

Cc: Alan Cox alan@lxorguk.ukuu.org.uk
Signed-off-by: Doug Thompson <dougthompson@xmission.com>
Acked-by: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
diff --git a/drivers/edac/edac_core.h b/drivers/edac/edac_core.h
index bd7f00c..4e31ac4 100644
--- a/drivers/edac/edac_core.h
+++ b/drivers/edac/edac_core.h
@@ -337,6 +337,9 @@
  */
 struct mem_ctl_info {
 	struct list_head link;	/* for global list of mem_ctl_info structs */
+
+	struct module *owner;	/* Module owner of this control struct */
+
 	unsigned long mtype_cap;	/* memory types supported by mc */
 	unsigned long edac_ctl_cap;	/* Mem controller EDAC capabilities */
 	unsigned long edac_cap;	/* configuration capabilities - this is
@@ -510,7 +513,6 @@
 
 	/* edac sysfs device control */
 	struct kobject kobj;
-	struct completion kobj_complete;
 };
 
 /* device instance control structure */
@@ -525,7 +527,6 @@
 
 	/* edac sysfs device control */
 	struct kobject kobj;
-	struct completion kobj_complete;
 };
 
 
@@ -537,6 +538,8 @@
 	/* for global list of edac_device_ctl_info structs */
 	struct list_head link;
 
+	struct module *owner;	/* Module owner of this control struct */
+
 	int dev_idx;
 
 	/* Per instance controls for this edac_device */
@@ -587,7 +590,7 @@
 	 * NMI handlers may be traversing list
 	 */
 	struct rcu_head rcu;
-	struct completion complete;
+	struct completion removal_complete;
 
 	/* sysfs top name under 'edac' directory
 	 * and instance name:
@@ -611,7 +614,6 @@
 	 * device this structure controls
 	 */
 	struct kobject kobj;
-	struct completion kobj_complete;
 };
 
 /* To get from the instance's wq to the beginning of the ctl structure */