Re: [PATCH v2, part 1 3/9] PCI: Convert alloc_pci_dev(void) topci_alloc_dev(bus) instead

From: Yinghai Lu
Date: Mon May 13 2013 - 13:23:35 EST


On Mon, May 13, 2013 at 9:08 AM, Jiang Liu <liuj97@xxxxxxxxx> wrote:
> From: Gu Zheng <guz.fnst@xxxxxxxxxxxxxx>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 4f0bc0a..bc075a3 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -1131,6 +1131,7 @@ static void pci_release_dev(struct device *dev)
> struct pci_dev *pci_dev;
>
> pci_dev = to_pci_dev(dev);
> + pci_bus_put(pci_dev->bus);
> pci_release_capabilities(pci_dev);
> pci_release_of_node(pci_dev);
> kfree(pci_dev);
> @@ -1269,11 +1270,10 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
> if (!pci_bus_read_dev_vendor_id(bus, devfn, &l, 60*1000))
> return NULL;
>
> - dev = alloc_pci_dev();
> + dev = pci_alloc_dev(bus);
> if (!dev)
> return NULL;
>
> - dev->bus = bus;
> dev->devfn = devfn;
> dev->vendor = l & 0xffff;
> dev->device = (l >> 16) & 0xffff;

in pci_setup_device() fail path, it release the ref to that bus.

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/