summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-10-05 02:07:32 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2006-10-09 17:24:52 -0700
commit4b75eb2bd30707c1af76145fd3a4ec2d890e1870 (patch)
tree8297f3968f759788a8cb2e385dfb6e24ae18a6c4
parent99ae1c83b5107cd91e45d4d3c7bf096cdff0cf06 (diff)
downloadlinux-3.10-4b75eb2bd30707c1af76145fd3a4ec2d890e1870.tar.gz
linux-3.10-4b75eb2bd30707c1af76145fd3a4ec2d890e1870.tar.bz2
linux-3.10-4b75eb2bd30707c1af76145fd3a4ec2d890e1870.zip
[SPARC64]: Fix of_device bus_id settings.
They have to be unique system-wide, so use "NAME@NODE" as the string pattern of the non-root nodes. Thanks to Andrew Morton for fixing the error value checking in bus_add_device() which made this problem finally noticable. Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--arch/sparc64/kernel/of_device.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c
index 7f920453577..d822c7c18e1 100644
--- a/arch/sparc64/kernel/of_device.c
+++ b/arch/sparc64/kernel/of_device.c
@@ -841,7 +841,7 @@ static struct of_device * __init scan_one_device(struct device_node *dp,
if (!parent)
strcpy(op->dev.bus_id, "root");
else
- strcpy(op->dev.bus_id, dp->path_component_name);
+ sprintf(op->dev.bus_id, "%s@%08x", dp->name, dp->node);
if (of_device_register(op)) {
printk("%s: Could not register of device.\n",