X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=drivers%2Fof%2Fdevice.c;h=224ae6bc67b6bb7b5b893192b7170cc6be8ef29c;hb=c36194871293100bd4b2ecb54ac9774d6e627aa2;hp=51e5214071da9f32b370c48622d70f9a62f55e5b;hpb=7fd106785104fa19709fa136abb64c7a9d5db285;p=deliverable%2Flinux.git 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); 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);