aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorSergey Vlasov <vsu@altlinux.ru>2005-11-14 20:30:50 +0300
committerGreg Kroah-Hartman <gregkh@suse.de>2006-01-09 12:13:15 -0800
commit8c9ad508c8737ca46a4c55b1062d159b86f7cee2 (patch)
tree20e2a5ffb2ec6f6dcf98a65c4d612c2766002fa9 /drivers/pci
parent[PATCH] PCI: arch/i386/pci/acpi.c: use for_each_pci_dev (diff)
downloadlinux-dev-8c9ad508c8737ca46a4c55b1062d159b86f7cee2.tar.xz
linux-dev-8c9ad508c8737ca46a4c55b1062d159b86f7cee2.zip
[PATCH] PCIE: make bus_id for PCI Express devices unique
The bus_id string must be unique for all devices of that bus in the system, not just for devices with the same parent - otherwise multiple symlinks with identical names appear in /sys/bus/pci_express/devices. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pcie/portdrv_core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
index 467a4ceccf10..e4e5f1e8d816 100644
--- a/drivers/pci/pcie/portdrv_core.c
+++ b/drivers/pci/pcie/portdrv_core.c
@@ -238,8 +238,8 @@ static void pcie_device_init(struct pci_dev *parent, struct pcie_device *dev,
device->driver = NULL;
device->driver_data = NULL;
device->release = release_pcie_device; /* callback to free pcie dev */
- sprintf(&device->bus_id[0], "pcie%02x",
- get_descriptor_id(port_type, service_type));
+ snprintf(device->bus_id, sizeof(device->bus_id), "%s:pcie%02x",
+ pci_name(parent), get_descriptor_id(port_type, service_type));
device->parent = &parent->dev;
}