|
@@ -212,11 +212,13 @@ struct phy_device *phy_attach(struct net_device *dev,
|
|
|
|
|
|
err = d->driver->probe(d);
|
|
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);
|
|
up_write(&d->bus->subsys.rwsem);
|
|
|
|
+
|
|
|
|
+ if (err)
|
|
|
|
+ return ERR_PTR(err);
|
|
}
|
|
}
|
|
|
|
|
|
if (phydev->attached_dev) {
|
|
if (phydev->attached_dev) {
|