Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7a00ecd authored by Jeff Garzik's avatar Jeff Garzik
Browse files

[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: default avatarJeff Garzik <jeff@garzik.org>
parent 1c7da74c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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:
+5 −3
Original line number Diff line number Diff line
@@ -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) {