aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/of_device.c1
-rw-r--r--drivers/of/device.c11
2 files changed, 10 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/of_device.c b/arch/powerpc/kernel/of_device.c
index 93ae5b169f41..f3c9cae01dd5 100644
--- a/arch/powerpc/kernel/of_device.c
+++ b/arch/powerpc/kernel/of_device.c
@@ -78,7 +78,6 @@ struct of_device *of_device_alloc(struct device_node *np,
78 dev->dev.parent = parent; 78 dev->dev.parent = parent;
79 dev->dev.release = of_release_dev; 79 dev->dev.release = of_release_dev;
80 dev->dev.archdata.of_node = np; 80 dev->dev.archdata.of_node = np;
81 set_dev_node(&dev->dev, of_node_to_nid(np));
82 81
83 if (bus_id) 82 if (bus_id)
84 strlcpy(dev->dev.bus_id, bus_id, BUS_ID_SIZE); 83 strlcpy(dev->dev.bus_id, bus_id, BUS_ID_SIZE);
diff --git a/drivers/of/device.c b/drivers/of/device.c
index 51e5214071da..224ae6bc67b6 100644
--- a/drivers/of/device.c
+++ b/drivers/of/device.c
@@ -105,7 +105,16 @@ EXPORT_SYMBOL(of_release_dev);
105int of_device_register(struct of_device *ofdev) 105int of_device_register(struct of_device *ofdev)
106{ 106{
107 BUG_ON(ofdev->node == NULL); 107 BUG_ON(ofdev->node == NULL);
108 return device_register(&ofdev->dev); 108
109 device_initialize(&ofdev->dev);
110
111 /* device_add will assume that this device is on the same node as
112 * the parent. If there is no parent defined, set the node
113 * explicitly */
114 if (!ofdev->dev.parent)
115 set_dev_node(&ofdev->dev, of_node_to_nid(ofdev->node));
116
117 return device_add(&ofdev->dev);
109} 118}
110EXPORT_SYMBOL(of_device_register); 119EXPORT_SYMBOL(of_device_register);
111 120