diff mbox series

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

Message ID 20200928071744.18253-1-brgl@bgdev.pl
State Not Applicable
Delegated to: Anthony Nguyen
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;