diff mbox series

PCI: aardvark: Indicate error in 'val' when config read fails

Message ID 20200601130315.18895-1-pali@kernel.org
State New
Headers show
Series PCI: aardvark: Indicate error in 'val' when config read fails | expand

Commit Message

Pali Rohár June 1, 2020, 1:03 p.m. UTC
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.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/pci/controller/pci-aardvark.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Pali Rohár June 19, 2020, 10:56 a.m. UTC | #1
Hello Lorenzo! Could you please review this patch?

On Monday 01 June 2020 15:03:15 Pali Rohár wrote:
> 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.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

I should add credit for Bjorn as he found this issue

Reported-by: Bjorn Helgaas <helgaas@kernel.org>

> ---
>  drivers/pci/controller/pci-aardvark.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
> index 53a4cfd7d377..783a7f1f2c44 100644
> --- a/drivers/pci/controller/pci-aardvark.c
> +++ b/drivers/pci/controller/pci-aardvark.c
> @@ -691,8 +691,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;
> +	}
>  
>  	advk_pcie_check_pio_status(pcie);
>  
> -- 
> 2.20.1
>
Lorenzo Pieralisi July 7, 2020, 1:53 p.m. UTC | #2
On Fri, Jun 19, 2020 at 12:56:18PM +0200, Pali Rohár wrote:
> Hello Lorenzo! Could you please review this patch?
> 
> On Monday 01 June 2020 15:03:15 Pali Rohár wrote:
> > 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.
> > 
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> 
> I should add credit for Bjorn as he found this issue

Could you provide a lore archive link to the relevant
discussion please ? I will apply it then.

Lorenzo

> Reported-by: Bjorn Helgaas <helgaas@kernel.org>
> 
> > ---
> >  drivers/pci/controller/pci-aardvark.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
> > index 53a4cfd7d377..783a7f1f2c44 100644
> > --- a/drivers/pci/controller/pci-aardvark.c
> > +++ b/drivers/pci/controller/pci-aardvark.c
> > @@ -691,8 +691,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;
> > +	}
> >  
> >  	advk_pcie_check_pio_status(pcie);
> >  
> > -- 
> > 2.20.1
> >
Pali Rohár July 7, 2020, 2:02 p.m. UTC | #3
On Tuesday 07 July 2020 14:53:11 Lorenzo Pieralisi wrote:
> On Fri, Jun 19, 2020 at 12:56:18PM +0200, Pali Rohár wrote:
> > Hello Lorenzo! Could you please review this patch?
> > 
> > On Monday 01 June 2020 15:03:15 Pali Rohár wrote:
> > > 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.
> > > 
> > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > 
> > I should add credit for Bjorn as he found this issue
> 
> Could you provide a lore archive link to the relevant
> discussion please ? I will apply it then.

Hello Lorenzo! Here is link to the Bjorn's email:
https://lore.kernel.org/linux-pci/20200528162604.GA323482@bjorn-Precision-5520/

> Lorenzo
> 
> > Reported-by: Bjorn Helgaas <helgaas@kernel.org>
> > 
> > > ---
> > >  drivers/pci/controller/pci-aardvark.c | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
> > > index 53a4cfd7d377..783a7f1f2c44 100644
> > > --- a/drivers/pci/controller/pci-aardvark.c
> > > +++ b/drivers/pci/controller/pci-aardvark.c
> > > @@ -691,8 +691,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;
> > > +	}
> > >  
> > >  	advk_pcie_check_pio_status(pcie);
> > >  
> > > -- 
> > > 2.20.1
> > >
Lorenzo Pieralisi July 7, 2020, 2:49 p.m. UTC | #4
On Tue, Jul 07, 2020 at 04:02:44PM +0200, Pali Rohár wrote:
> On Tuesday 07 July 2020 14:53:11 Lorenzo Pieralisi wrote:
> > On Fri, Jun 19, 2020 at 12:56:18PM +0200, Pali Rohár wrote:
> > > Hello Lorenzo! Could you please review this patch?
> > > 
> > > On Monday 01 June 2020 15:03:15 Pali Rohár wrote:
> > > > 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.
> > > > 
> > > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > 
> > > I should add credit for Bjorn as he found this issue
> > 
> > Could you provide a lore archive link to the relevant
> > discussion please ? I will apply it then.
> 
> Hello Lorenzo! Here is link to the Bjorn's email:
> https://lore.kernel.org/linux-pci/20200528162604.GA323482@bjorn-Precision-5520/

Thanks applied to pci/aardvark.

Lorenzo

> > Lorenzo
> > 
> > > Reported-by: Bjorn Helgaas <helgaas@kernel.org>
> > > 
> > > > ---
> > > >  drivers/pci/controller/pci-aardvark.c | 4 +++-
> > > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
> > > > index 53a4cfd7d377..783a7f1f2c44 100644
> > > > --- a/drivers/pci/controller/pci-aardvark.c
> > > > +++ b/drivers/pci/controller/pci-aardvark.c
> > > > @@ -691,8 +691,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;
> > > > +	}
> > > >  
> > > >  	advk_pcie_check_pio_status(pcie);
> > > >  
> > > > -- 
> > > > 2.20.1
> > > >
diff mbox series

Patch

diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 53a4cfd7d377..783a7f1f2c44 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -691,8 +691,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;
+	}
 
 	advk_pcie_check_pio_status(pcie);