On Thu Mar 5 11:39:19 2026 +0100, Johan Hovold wrote:
> 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 <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/usb/usbtv/usbtv-core.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

---

diff --git a/drivers/media/usb/usbtv/usbtv-core.c 
b/drivers/media/usb/usbtv/usbtv-core.c
index c4bfadbe63c9..6c4facf4f41a 100644
--- a/drivers/media/usb/usbtv/usbtv-core.c
+++ b/drivers/media/usb/usbtv/usbtv-core.c
@@ -91,7 +91,7 @@ static int usbtv_probe(struct usb_interface *intf,
        if (usbtv == NULL)
                return -ENOMEM;
        usbtv->dev = dev;
-       usbtv->udev = usb_get_dev(interface_to_usbdev(intf));
+       usbtv->udev = interface_to_usbdev(intf);
 
        usbtv->iso_size = size;
 
@@ -119,7 +119,6 @@ usbtv_audio_fail:
 
 usbtv_video_fail:
        usb_set_intfdata(intf, NULL);
-       usb_put_dev(usbtv->udev);
        kfree(usbtv);
 
        return ret;
@@ -137,7 +136,6 @@ static void usbtv_disconnect(struct usb_interface *intf)
        usbtv_audio_free(usbtv);
        usbtv_video_free(usbtv);
 
-       usb_put_dev(usbtv->udev);
        usbtv->udev = NULL;
 
        /* the usbtv structure will be deallocated when v4l2 will be
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to