diff mbox series

[net-next] net: mvmdio: fix driver probe on missing irq

Message ID 20200319012940.14490-1-marek.behun@nic.cz
State Not Applicable
Delegated to: David Miller
Headers show
Series [net-next] net: mvmdio: fix driver probe on missing irq | expand

Commit Message

Marek Behún March 19, 2020, 1:29 a.m. UTC
Commit e1f550dc44a4 made the use of platform_get_irq_optional, which can
return -ENXIO when interrupt is missing. Handle this as non-error,
otherwise the driver won't probe.

Fixes: e1f550dc44a4 ("net: mvmdio: avoid error message for optional...")
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/ethernet/marvell/mvmdio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Chris Packham March 19, 2020, 2 a.m. UTC | #1
Hi Marek,

On Thu, 2020-03-19 at 02:29 +0100, Marek Behún wrote:
> Commit e1f550dc44a4 made the use of platform_get_irq_optional, which can
> return -ENXIO when interrupt is missing. Handle this as non-error,
> otherwise the driver won't probe.

This has already been fixed in net/master by reverting e1f550dc44a4 and
replacing it with fa2632f74e57bbc869c8ad37751a11b6147a3acc.

> 
> Fixes: e1f550dc44a4 ("net: mvmdio: avoid error message for optional...")
> Signed-off-by: Marek Behún <marek.behun@nic.cz>
> Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Cc: Andrew Lunn <andrew@lunn.ch>
> ---
>  drivers/net/ethernet/marvell/mvmdio.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c
> index d2e2dc538428..f9f09da57031 100644
> --- a/drivers/net/ethernet/marvell/mvmdio.c
> +++ b/drivers/net/ethernet/marvell/mvmdio.c
> @@ -364,7 +364,7 @@ static int orion_mdio_probe(struct platform_device *pdev)
>  		writel(MVMDIO_ERR_INT_SMI_DONE,
>  			dev->regs + MVMDIO_ERR_INT_MASK);
>  
> -	} else if (dev->err_interrupt < 0) {
> +	} else if (dev->err_interrupt < 0 && dev->err_interrupt != -ENXIO) {
>  		ret = dev->err_interrupt;
>  		goto out_mdio;
>  	}
Marek Behún March 19, 2020, 4:21 a.m. UTC | #2
On Thu, 19 Mar 2020 02:00:57 +0000
Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:

> Hi Marek,
> 
> On Thu, 2020-03-19 at 02:29 +0100, Marek Behún wrote:
> > Commit e1f550dc44a4 made the use of platform_get_irq_optional, which can
> > return -ENXIO when interrupt is missing. Handle this as non-error,
> > otherwise the driver won't probe.  
> 
> This has already been fixed in net/master by reverting e1f550dc44a4 and
> replacing it with fa2632f74e57bbc869c8ad37751a11b6147a3acc.

:( It isn't in net-next. I've spent like an hour debugging it :-D
Chris Packham March 19, 2020, 4:27 a.m. UTC | #3
On Thu, 2020-03-19 at 05:21 +0100, Marek Behun wrote:
> On Thu, 19 Mar 2020 02:00:57 +0000
> Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:
> 
> > Hi Marek,
> > 
> > On Thu, 2020-03-19 at 02:29 +0100, Marek Behún wrote:
> > > Commit e1f550dc44a4 made the use of platform_get_irq_optional, which can
> > > return -ENXIO when interrupt is missing. Handle this as non-error,
> > > otherwise the driver won't probe.  
> > 
> > This has already been fixed in net/master by reverting e1f550dc44a4 and
> > replacing it with fa2632f74e57bbc869c8ad37751a11b6147a3acc.
> 
> :( It isn't in net-next. I've spent like an hour debugging it :-D

I can only offer my humble apologies and promise to do better next
time. I did test the first minimally correct change, but clearly
stuffed up on v2.
Marek Behún March 19, 2020, 4:36 a.m. UTC | #4
On Thu, 19 Mar 2020 04:27:56 +0000
Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:

> On Thu, 2020-03-19 at 05:21 +0100, Marek Behun wrote:
> > On Thu, 19 Mar 2020 02:00:57 +0000
> > Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:
> >   
> > > Hi Marek,
> > > 
> > > On Thu, 2020-03-19 at 02:29 +0100, Marek Behún wrote:  
> > > > Commit e1f550dc44a4 made the use of platform_get_irq_optional, which can
> > > > return -ENXIO when interrupt is missing. Handle this as non-error,
> > > > otherwise the driver won't probe.    
> > > 
> > > This has already been fixed in net/master by reverting e1f550dc44a4 and
> > > replacing it with fa2632f74e57bbc869c8ad37751a11b6147a3acc.  
> > 
> > :( It isn't in net-next. I've spent like an hour debugging it :-D  
> 
> I can only offer my humble apologies and promise to do better next
> time. I did test the first minimally correct change, but clearly
> stuffed up on v2.

That's ok, but this should be also in net-next as well. Has Dave
forgotten to apply it there, or is there some other plan?
Marek
Andrew Lunn March 19, 2020, 8:58 a.m. UTC | #5
On Thu, Mar 19, 2020 at 05:36:59AM +0100, Marek Behun wrote:
> On Thu, 19 Mar 2020 04:27:56 +0000
> Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:
> 
> > On Thu, 2020-03-19 at 05:21 +0100, Marek Behun wrote:
> > > On Thu, 19 Mar 2020 02:00:57 +0000
> > > Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:
> > >   
> > > > Hi Marek,
> > > > 
> > > > On Thu, 2020-03-19 at 02:29 +0100, Marek Behún wrote:  
> > > > > Commit e1f550dc44a4 made the use of platform_get_irq_optional, which can
> > > > > return -ENXIO when interrupt is missing. Handle this as non-error,
> > > > > otherwise the driver won't probe.    
> > > > 
> > > > This has already been fixed in net/master by reverting e1f550dc44a4 and
> > > > replacing it with fa2632f74e57bbc869c8ad37751a11b6147a3acc.  
> > > 
> > > :( It isn't in net-next. I've spent like an hour debugging it :-D  
> > 
> > I can only offer my humble apologies and promise to do better next
> > time. I did test the first minimally correct change, but clearly
> > stuffed up on v2.
> 
> That's ok, but this should be also in net-next as well. Has Dave
> forgotten to apply it there, or is there some other plan?

It probably went into net. It then takes around a week before net is
merged into net-next.

       Andrew
diff mbox series

Patch

diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c
index d2e2dc538428..f9f09da57031 100644
--- a/drivers/net/ethernet/marvell/mvmdio.c
+++ b/drivers/net/ethernet/marvell/mvmdio.c
@@ -364,7 +364,7 @@  static int orion_mdio_probe(struct platform_device *pdev)
 		writel(MVMDIO_ERR_INT_SMI_DONE,
 			dev->regs + MVMDIO_ERR_INT_MASK);
 
-	} else if (dev->err_interrupt < 0) {
+	} else if (dev->err_interrupt < 0 && dev->err_interrupt != -ENXIO) {
 		ret = dev->err_interrupt;
 		goto out_mdio;
 	}