diff mbox series

net: ethernet: ixgbe: don't propagate -ENODEV from ixgbe_mii_bus_init()

Message ID 20200928071744.18253-1-brgl@bgdev.pl
State New
Headers show
Series net: ethernet: ixgbe: don't propagate -ENODEV from ixgbe_mii_bus_init() | expand

Commit Message

Bartosz Golaszewski Sept. 28, 2020, 7:17 a.m. UTC
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

It's a valid use-case for ixgbe_mii_bus_init() to return -ENODEV - we
still want to finalize the registration of the ixgbe device. Check the
error code and don't bail out if err == -ENODEV.

This fixes an issue on C3000 family of SoCs where four ixgbe devices
share a single MDIO bus and ixgbe_mii_bus_init() returns -ENODEV for
three of them but we still want to register them.

Fixes: 09ef193fef7e ("net: ethernet: ixgbe: check the return value of ixgbe_mii_bus_init()")
Reported-by: Yongxin Liu <yongxin.liu@windriver.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bartosz Golaszewski Oct. 12, 2020, 12:20 p.m. UTC | #1
On Mon, Sep 28, 2020 at 9:17 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> It's a valid use-case for ixgbe_mii_bus_init() to return -ENODEV - we
> still want to finalize the registration of the ixgbe device. Check the
> error code and don't bail out if err == -ENODEV.
>
> This fixes an issue on C3000 family of SoCs where four ixgbe devices
> share a single MDIO bus and ixgbe_mii_bus_init() returns -ENODEV for
> three of them but we still want to register them.
>
> Fixes: 09ef193fef7e ("net: ethernet: ixgbe: check the return value of ixgbe_mii_bus_init()")
> Reported-by: Yongxin Liu <yongxin.liu@windriver.com>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 2f8a4cfc5fa1..d1623af30125 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -11032,7 +11032,7 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>                         true);
>
>         err = ixgbe_mii_bus_init(hw);
> -       if (err)
> +       if (err && err != -ENODEV)
>                 goto err_netdev;
>
>         return 0;
> --
> 2.26.1
>

Hi!

Gentle ping for this patch. Who's picking up networking patches now
that David is OoO? Should I Cc someone else?

Bartosz
Jakub Kicinski Oct. 12, 2020, 3:16 p.m. UTC | #2
On Mon, 12 Oct 2020 14:20:16 +0200 Bartosz Golaszewski wrote:
> On Mon, Sep 28, 2020 at 9:17 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> >

> > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

> >

> > It's a valid use-case for ixgbe_mii_bus_init() to return -ENODEV - we

> > still want to finalize the registration of the ixgbe device. Check the

> > error code and don't bail out if err == -ENODEV.

> >

> > This fixes an issue on C3000 family of SoCs where four ixgbe devices

> > share a single MDIO bus and ixgbe_mii_bus_init() returns -ENODEV for

> > three of them but we still want to register them.

> >

> > Fixes: 09ef193fef7e ("net: ethernet: ixgbe: check the return value of ixgbe_mii_bus_init()")

> > Reported-by: Yongxin Liu <yongxin.liu@windriver.com>

> > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>

> > ---

> >  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-

> >  1 file changed, 1 insertion(+), 1 deletion(-)

> >

> > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

> > index 2f8a4cfc5fa1..d1623af30125 100644

> > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

> > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

> > @@ -11032,7 +11032,7 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

> >                         true);

> >

> >         err = ixgbe_mii_bus_init(hw);

> > -       if (err)

> > +       if (err && err != -ENODEV)

> >                 goto err_netdev;

> >

> >         return 0;

>

> Gentle ping for this patch. Who's picking up networking patches now

> that David is OoO? Should I Cc someone else?


Intel went through a maintainer change of its own, and they usually
pick up their patches and send a PR.

Tony, do you want me to apply this directly?
Tony Nguyen Oct. 12, 2020, 4:26 p.m. UTC | #3
On Mon, 2020-10-12 at 08:16 -0700, Jakub Kicinski wrote:
> On Mon, 12 Oct 2020 14:20:16 +0200 Bartosz Golaszewski wrote:

> > On Mon, Sep 28, 2020 at 9:17 AM Bartosz Golaszewski <brgl@bgdev.pl>

> > wrote:

> > > 

> > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

> > > 

> > > It's a valid use-case for ixgbe_mii_bus_init() to return -ENODEV

> > > - we

> > > still want to finalize the registration of the ixgbe device.

> > > Check the

> > > error code and don't bail out if err == -ENODEV.

> > > 

> > > This fixes an issue on C3000 family of SoCs where four ixgbe

> > > devices

> > > share a single MDIO bus and ixgbe_mii_bus_init() returns -ENODEV

> > > for

> > > three of them but we still want to register them.

> > > 

> > > Fixes: 09ef193fef7e ("net: ethernet: ixgbe: check the return

> > > value of ixgbe_mii_bus_init()")

> > > Reported-by: Yongxin Liu <yongxin.liu@windriver.com>

> > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>

> > > ---

> > >  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-

> > >  1 file changed, 1 insertion(+), 1 deletion(-)

> > > 

> > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

> > > b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

> > > index 2f8a4cfc5fa1..d1623af30125 100644

> > > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

> > > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

> > > @@ -11032,7 +11032,7 @@ static int ixgbe_probe(struct pci_dev

> > > *pdev, const struct pci_device_id *ent)

> > >                         true);

> > > 

> > >         err = ixgbe_mii_bus_init(hw);

> > > -       if (err)

> > > +       if (err && err != -ENODEV)

> > >                 goto err_netdev;

> > > 

> > >         return 0;

> > 

> > Gentle ping for this patch. Who's picking up networking patches now

> > that David is OoO? Should I Cc someone else?

> 

> Intel went through a maintainer change of its own, and they usually

> pick up their patches and send a PR.

> 

> Tony, do you want me to apply this directly?


Hi Jakub,

I can take it. That way we can get some testing done on it.

Thanks,
Tony
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 2f8a4cfc5fa1..d1623af30125 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -11032,7 +11032,7 @@  static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 			true);
 
 	err = ixgbe_mii_bus_init(hw);
-	if (err)
+	if (err && err != -ENODEV)
 		goto err_netdev;
 
 	return 0;