PCI: iproc: Fix exception with multi-function devices
authorRay Jui <ray.jui@broadcom.com>
Tue, 1 Nov 2016 00:38:33 +0000 (17:38 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 14 Nov 2016 22:07:37 +0000 (16:07 -0600)
commit538928fd6ce8e0342d98a203a1d16caf2ce33f2b
tree48746af68701a77695bf3deed88707565fdf477b
parent404349c5c806d56de2b41f48a99402c3c7573af5
PCI: iproc: Fix exception with multi-function devices

During enumeration with multi-function EP devices, access to the
configuration space of a non-existent function results in an unsupported
request being returned as expected.  By default the PAXB-based iProc PCIe
controller forwards this as an APB error to the host system and that causes
an exception, which is undesired.

Disable this undesired behaviour and let the kernel PCI stack deal with an
access to the non-existent function, in which case a vendor ID of 0xffff is
returned and handled gracefully.

Reported-by: JD Zheng <jiandong.zheng@broadcom.com>
Signed-off-by: Ray Jui <ray.jui@broadcom.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: JD Zheng <jiandong.zheng@broadcom.com>
Reviewed-by: Oza Oza <oza.oza@broadcom.com>
Reviewed-by: Scott Branden <scott.branden@broadcom.com>
drivers/pci/host/pcie-iproc.c
drivers/pci/host/pcie-iproc.h