From 15a3ccfa98920465f7066acb3e59e846d89dbbfc Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Sun, 26 Oct 2008 21:51:25 +0000 Subject: [PATCH] --- yaml --- r: 118273 b: refs/heads/master c: 6098e2ee14849e0819ffa887ebf470dcfad4a2be h: refs/heads/master i: 118271: 60355098a39bb53d4505c47ce80321abeff812e5 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kernel/of_device.c | 1 - trunk/drivers/of/device.c | 11 ++++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index b252b6dee05d..096f8933f78a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 16c29d180becc5bdf92fd0fc7314a44a671b5f4e +refs/heads/master: 6098e2ee14849e0819ffa887ebf470dcfad4a2be diff --git a/trunk/arch/powerpc/kernel/of_device.c b/trunk/arch/powerpc/kernel/of_device.c index 93ae5b169f41..f3c9cae01dd5 100644 --- a/trunk/arch/powerpc/kernel/of_device.c +++ b/trunk/arch/powerpc/kernel/of_device.c @@ -78,7 +78,6 @@ struct of_device *of_device_alloc(struct device_node *np, dev->dev.parent = parent; dev->dev.release = of_release_dev; dev->dev.archdata.of_node = np; - set_dev_node(&dev->dev, of_node_to_nid(np)); if (bus_id) strlcpy(dev->dev.bus_id, bus_id, BUS_ID_SIZE); diff --git a/trunk/drivers/of/device.c b/trunk/drivers/of/device.c index 51e5214071da..224ae6bc67b6 100644 --- a/trunk/drivers/of/device.c +++ b/trunk/drivers/of/device.c @@ -105,7 +105,16 @@ EXPORT_SYMBOL(of_release_dev); int of_device_register(struct of_device *ofdev) { BUG_ON(ofdev->node == NULL); - return device_register(&ofdev->dev); + + device_initialize(&ofdev->dev); + + /* device_add will assume that this device is on the same node as + * the parent. If there is no parent defined, set the node + * explicitly */ + if (!ofdev->dev.parent) + set_dev_node(&ofdev->dev, of_node_to_nid(ofdev->node)); + + return device_add(&ofdev->dev); } EXPORT_SYMBOL(of_device_register);