forked from Minki/linux
[netdrvr] phy: Fix bugs in error handling
The recent __must_check stuff flagged some error handling bugs. phy/fixed.c: * handle device_bind_driver() failure phy/phy_device.c: * handle device_bind_driver() failure * release rwsem upon failure Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
1c7da74c4a
commit
b7a00ecd55
@ -289,9 +289,13 @@ static int fixed_mdio_register_device(int number, int speed, int duplex)
|
||||
goto probe_fail;
|
||||
}
|
||||
|
||||
device_bind_driver(&phydev->dev);
|
||||
err = device_bind_driver(&phydev->dev);
|
||||
|
||||
up_write(&phydev->dev.bus->subsys.rwsem);
|
||||
|
||||
if (err)
|
||||
goto probe_fail;
|
||||
|
||||
return 0;
|
||||
|
||||
probe_fail:
|
||||
|
@ -212,11 +212,13 @@ struct phy_device *phy_attach(struct net_device *dev,
|
||||
|
||||
err = d->driver->probe(d);
|
||||
|
||||
if (err < 0)
|
||||
return ERR_PTR(err);
|
||||
if (err >= 0)
|
||||
err = device_bind_driver(d);
|
||||
|
||||
device_bind_driver(d);
|
||||
up_write(&d->bus->subsys.rwsem);
|
||||
|
||||
if (err)
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
if (phydev->attached_dev) {
|
||||
|
Loading…
Reference in New Issue
Block a user