[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:
Jeff Garzik 2006-10-01 07:27:46 -04:00
parent 1c7da74c4a
commit b7a00ecd55
2 changed files with 10 additions and 4 deletions

View file

@ -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:

View file

@ -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) {