Re: [PATCH net] net: dsa: loop: Do not unregister invalid fixed PHY
From: Florian Fainelli Date: Sat, 2 Sep 2017 08:56:45 -0700 > During error injection it was possible to crash in dsa_loop_exit() because of > an attempt to unregister an invalid PHY. We actually want to the driver > probing > in dsa_loop_init() even though fixed_phy_register() may return an error to > exercise how DSA deals with such cases, but we should not be crashing during > driver removal. > > Fixes: 98cd1552ea27 ("net: dsa: Mock-up driver") > Signed-off-by: Florian Fainelli Applied and queued up for -stable, thanks.
Re: [PATCH net] net: dsa: loop: Do not unregister invalid fixed PHY
On Sat, Sep 02, 2017 at 08:56:45AM -0700, Florian Fainelli wrote: > During error injection it was possible to crash in dsa_loop_exit() because of > an attempt to unregister an invalid PHY. We actually want to the driver > probing > in dsa_loop_init() even though fixed_phy_register() may return an error to > exercise how DSA deals with such cases, but we should not be crashing during > driver removal. > > Fixes: 98cd1552ea27 ("net: dsa: Mock-up driver") > Signed-off-by: Florian Fainelli Reviewed-by: Andrew Lunn Andrew
[PATCH net] net: dsa: loop: Do not unregister invalid fixed PHY
During error injection it was possible to crash in dsa_loop_exit() because of an attempt to unregister an invalid PHY. We actually want to the driver probing in dsa_loop_init() even though fixed_phy_register() may return an error to exercise how DSA deals with such cases, but we should not be crashing during driver removal. Fixes: 98cd1552ea27 ("net: dsa: Mock-up driver") Signed-off-by: Florian Fainelli --- drivers/net/dsa/dsa_loop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/dsa_loop.c b/drivers/net/dsa/dsa_loop.c index fdd8f3872102..8150e3a3c8dd 100644 --- a/drivers/net/dsa/dsa_loop.c +++ b/drivers/net/dsa/dsa_loop.c @@ -390,7 +390,7 @@ static void __exit dsa_loop_exit(void) mdio_driver_unregister(&dsa_loop_drv); for (i = 0; i < NUM_FIXED_PHYS; i++) - if (phydevs[i]) + if (!IS_ERR(phydevs[i])) fixed_phy_unregister(phydevs[i]); } module_exit(dsa_loop_exit); -- 2.11.0