diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-10-05 02:07:32 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-10-09 17:24:52 -0700 |
commit | 4b75eb2bd30707c1af76145fd3a4ec2d890e1870 (patch) | |
tree | 8297f3968f759788a8cb2e385dfb6e24ae18a6c4 /arch/sparc64/kernel | |
parent | 99ae1c83b5107cd91e45d4d3c7bf096cdff0cf06 (diff) | |
download | op-kernel-dev-4b75eb2bd30707c1af76145fd3a4ec2d890e1870.zip op-kernel-dev-4b75eb2bd30707c1af76145fd3a4ec2d890e1870.tar.gz |
[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>
Diffstat (limited to 'arch/sparc64/kernel')
-rw-r--r-- | arch/sparc64/kernel/of_device.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 7f92045..d822c7c 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", |