Selaa lähdekoodia

PCI: fix pci_setup_device()'s sprinting into a const buffer

Make pci_setup_device() write the bus ID directly into the allotted storage,
rather than using pci_name() as the address as that now returns a const
pointer.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
David Howells 17 vuotta sitten
vanhempi
commit
8b285ce84b
1 muutettua tiedostoa jossa 3 lisäystä ja 2 poistoa
  1. 3 2
      drivers/pci/probe.c

+ 3 - 2
drivers/pci/probe.c

@@ -713,8 +713,9 @@ static int pci_setup_device(struct pci_dev * dev)
 {
 	u32 class;
 
-	sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(dev->bus),
-		dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
+	snprintf(dev->dev.bus_id, BUS_ID_SIZE,
+		 "%04x:%02x:%02x.%d", pci_domain_nr(dev->bus),
+		 dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
 
 	pci_read_config_dword(dev, PCI_CLASS_REVISION, &class);
 	dev->revision = class & 0xff;