driver core: Replace the dangerous to_root_device macro with an inline function
authorFerenc Wagner <wferi@niif.hu>
Fri, 7 Jan 2011 14:17:47 +0000 (15:17 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 4 Feb 2011 00:36:40 +0000 (16:36 -0800)
The original macro worked only when applied to variables named 'dev'.
While this could have been fixed by simply renaming the macro argument,
a more type-safe replacement by an inline function is preferred.

Signed-off-by: Ferenc Wagner <wferi@niif.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/base/core.c

index 9cd3b5c..81b78ed 100644 (file)
@@ -1320,7 +1320,10 @@ struct root_device
        struct module *owner;
 };
 
-#define to_root_device(dev) container_of(dev, struct root_device, dev)
+inline struct root_device *to_root_device(struct device *d)
+{
+       return container_of(d, struct root_device, dev);
+}
 
 static void root_device_release(struct device *dev)
 {