]> git.baikalelectronics.ru Git - kernel.git/commitdiff
PCI: aardvark: Indicate error in 'val' when config read fails
authorPali Rohár <pali@kernel.org>
Mon, 1 Jun 2020 13:03:15 +0000 (15:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 Sep 2021 12:07:04 +0000 (14:07 +0200)
commit df7a57322f2fd77ddd441b4438dde2512d3ba149 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/controller/pci-aardvark.c

index 0538348ed843f483479e017fed77fd0ff270de50..a957211930a8115d83c611c30505de1c0b0b306e 100644 (file)
@@ -664,8 +664,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);