PCI: fix pci_setup_device()'s sprinting into a const buffer
authorDavid Howells <dhowells@redhat.com>
Fri, 27 Jun 2008 12:23:20 +0000 (13:23 +0100)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 27 Jun 2008 20:09:02 +0000 (13:09 -0700)
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>
drivers/pci/probe.c

index f829119..0420fd8 100644 (file)
@@ -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;