aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/mdio/mdio-mvusb.c
diff options
context:
space:
mode:
authorMark Brown <[email protected]>2023-05-19 12:32:04 +0900
committerMark Brown <[email protected]>2023-05-19 12:32:04 +0900
commitaf53b00fa3aca3410c89900a34e5d727a27c36e2 (patch)
tree1b51641988e0ae56f8de4a693ab3d1aecc5491d4 /drivers/net/mdio/mdio-mvusb.c
parent98be58f2b517b212b57b8493dab92312a52614ac (diff)
parentf1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6 (diff)
Merge tag 'v6.4-rc2' into asoc-6.5 to get fixes for CI
Linux 6.4-rc2
Diffstat (limited to 'drivers/net/mdio/mdio-mvusb.c')
-rw-r--r--drivers/net/mdio/mdio-mvusb.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/mdio/mdio-mvusb.c b/drivers/net/mdio/mdio-mvusb.c
index 68fc55906e78..554837c21e73 100644
--- a/drivers/net/mdio/mdio-mvusb.c
+++ b/drivers/net/mdio/mdio-mvusb.c
@@ -67,6 +67,7 @@ static int mvusb_mdio_probe(struct usb_interface *interface,
struct device *dev = &interface->dev;
struct mvusb_mdio *mvusb;
struct mii_bus *mdio;
+ int ret;
mdio = devm_mdiobus_alloc_size(dev, sizeof(*mvusb));
if (!mdio)
@@ -87,7 +88,15 @@ static int mvusb_mdio_probe(struct usb_interface *interface,
mdio->write = mvusb_mdio_write;
usb_set_intfdata(interface, mvusb);
- return of_mdiobus_register(mdio, dev->of_node);
+ ret = of_mdiobus_register(mdio, dev->of_node);
+ if (ret)
+ goto put_dev;
+
+ return 0;
+
+put_dev:
+ usb_put_dev(mvusb->udev);
+ return ret;
}
static void mvusb_mdio_disconnect(struct usb_interface *interface)