PCI: aardvark: Indicate error in 'val' when config read fails
authorPali Rohár <pali@kernel.org>
Wed, 24 Nov 2021 22:49:17 +0000 (23:49 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Dec 2021 07:46:50 +0000 (08:46 +0100)
commit b1bd5714472cc72e14409f5659b154c765a76c65 upstream.

Most callers of config read do not check for return value. But most of the
ones that do, checks for error indication in 'val' variable.

This patch updates error handling in advk_pcie_rd_conf() function. If PIO
transfer fails then 'val' variable is set to 0xffffffff which indicates
failture.

Link: https://lore.kernel.org/r/20200528162604.GA323482@bjorn-Precision-5520
Link: https://lore.kernel.org/r/20200601130315.18895-1-pali@kernel.org
Reported-by: Bjorn Helgaas <helgaas@kernel.org>
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/host/pci-aardvark.c

index 3ad6b6245f9445aecbf8822b49bd090f7bb26f56..ae67e5c3fe70530e0a35b4e8edf62b7cc9ab4a90 100644 (file)
@@ -631,8 +631,10 @@ static int advk_pcie_rd_conf(struct pci_bus *bus, u32 devfn,
        advk_writel(pcie, 1, PIO_START);
 
        ret = advk_pcie_wait_pio(pcie);
-       if (ret < 0)
+       if (ret < 0) {
+               *val = 0xffffffff;
                return PCIBIOS_SET_FAILED;
+       }
 
        /* Check PIO status and get the read result */
        ret = advk_pcie_check_pio_status(pcie, val);