Bläddra i källkod

[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>
Sergey Vlasov 19 år sedan
förälder
incheckning
8c9ad508c8
1 ändrade filer med 2 tillägg och 2 borttagningar
  1. 2 2
      drivers/pci/pcie/portdrv_core.c

+ 2 - 2
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 = NULL;
 	device->driver_data = NULL;
 	device->driver_data = NULL;
 	device->release = release_pcie_device;	/* callback to free pcie dev */
 	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;
 	device->parent = &parent->dev;
 }
 }