Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From: Victor Gu <xigu@marvell.com>
- The PCI configuration space read/write functions were special casing
- the situation where PCI_SLOT(devfn) != 0, and returned
- PCIBIOS_DEVICE_NOT_FOUND in this case.
- However, will this is what is intended for the root bus, it is not
- intended for the child busses, as it prevents discovering devices with
- PCI_SLOT(x) != 0. Therefore, we return PCIBIOS_DEVICE_NOT_FOUND only
- if we're on the root bus.
- Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller driver")
- Cc: <stable@vger.kernel.org>
- Signed-off-by: Victor Gu <xigu@marvell.com>
- Reviewed-by: Wilson Ding <dingwei@marvell.com>
- Reviewed-by: Nadav Haklai <nadavh@marvell.com>
- [Thomas: tweak commit log.]
- Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
- ---
- drivers/pci/host/pci-aardvark.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
- diff --git a/drivers/pci/host/pci-aardvark.c b/drivers/pci/host/pci-aardvark.c
- index 89f4e3d072d7..da2881ba7737 100644
- --- a/drivers/pci/host/pci-aardvark.c
- +++ b/drivers/pci/host/pci-aardvark.c
- @@ -440,7 +440,7 @@ static int advk_pcie_rd_conf(struct pci_bus *bus, u32 devfn,
- u32 reg;
- int ret;
- - if (PCI_SLOT(devfn) != 0) {
- + if ((bus->number == pcie->root_bus_nr) && (PCI_SLOT(devfn) != 0)) {
- *val = 0xffffffff;
- return PCIBIOS_DEVICE_NOT_FOUND;
- }
- @@ -494,7 +494,7 @@ static int advk_pcie_wr_conf(struct pci_bus *bus, u32 devfn,
- int offset;
- int ret;
- - if (PCI_SLOT(devfn) != 0)
- + if ((bus->number == pcie->root_bus_nr) && (PCI_SLOT(devfn) != 0))
- return PCIBIOS_DEVICE_NOT_FOUND;
- if (where % size)
Add Comment
Please, Sign In to add comment