Skip to content

Commit 1a408a6

Browse files
jhovoldlag-linaro
authored andcommitted
mfd: viperboard: Drop redundant device reference
Driver core holds a reference to the USB interface and its parent USB device while the interface is bound to a driver and there is no need to take additional references unless the structures are needed after disconnect. Drop the redundant device reference to reduce cargo culting, make it easier to spot drivers where an extra reference is needed, and reduce the risk of memory leaks when drivers fail to release it. Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20260305104051.15727-1-johan@kernel.org Signed-off-by: Lee Jones <lee@kernel.org>
1 parent a2753f0 commit 1a408a6

1 file changed

Lines changed: 2 additions & 5 deletions

File tree

drivers/mfd/viperboard.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static int vprbrd_probe(struct usb_interface *interface,
5959

6060
mutex_init(&vb->lock);
6161

62-
vb->usb_dev = usb_get_dev(interface_to_usbdev(interface));
62+
vb->usb_dev = interface_to_usbdev(interface);
6363

6464
/* save our data pointer in this interface device */
6565
usb_set_intfdata(interface, vb);
@@ -96,10 +96,8 @@ static int vprbrd_probe(struct usb_interface *interface,
9696
return 0;
9797

9898
error:
99-
if (vb) {
100-
usb_put_dev(vb->usb_dev);
99+
if (vb)
101100
kfree(vb);
102-
}
103101

104102
return ret;
105103
}
@@ -110,7 +108,6 @@ static void vprbrd_disconnect(struct usb_interface *interface)
110108

111109
mfd_remove_devices(&interface->dev);
112110
usb_set_intfdata(interface, NULL);
113-
usb_put_dev(vb->usb_dev);
114111
kfree(vb);
115112

116113
dev_dbg(&interface->dev, "disconnected\n");

0 commit comments

Comments
 (0)