PCI: Introduce pci_alloc_dev(struct pci_bus*) to replace alloc_pci_dev()
authorGu Zheng <guz.fnst@cn.fujitsu.com>
Sat, 25 May 2013 13:48:30 +0000 (21:48 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 27 May 2013 22:23:28 +0000 (16:23 -0600)
commit3c6e6ae770f338ef3e54c5823c21063204f53537
tree7460a7cdf07d4e2a734b9c39706b34ab85b6e05f
parentfe830ef62ac6d8814e27b7e2f632848694b0e5c7
PCI: Introduce pci_alloc_dev(struct pci_bus*) to replace alloc_pci_dev()

Here we introduce a new interface to replace alloc_pci_dev():

    struct pci_dev *pci_alloc_dev(struct pci_bus *bus)

It takes a "struct pci_bus *" argument, so we can alloc a PCI device
on a target PCI bus, and it acquires a reference on the pci_bus.
We use pci_alloc_dev(NULL) to simplify the old alloc_pci_dev(),
and keep it for a while but mark it as __deprecated.

Holding a reference to the pci_bus ensures that referencing
pci_dev->bus is valid as long as the pci_dev is valid.

[bhelgaas: keep existing "return error early" structure in pci_alloc_dev()]
Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/probe.c
include/linux/pci.h