On Thu Mar 5 14:00:25 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/cx231xx/cx231xx-cards.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

---

diff --git a/drivers/media/usb/cx231xx/cx231xx-cards.c 
b/drivers/media/usb/cx231xx/cx231xx-cards.c
index b64a37d1acf4..b75535d6abaf 100644
--- a/drivers/media/usb/cx231xx/cx231xx-cards.c
+++ b/drivers/media/usb/cx231xx/cx231xx-cards.c
@@ -1369,8 +1369,6 @@ void cx231xx_release_resources(struct cx231xx *dev)
 
        cx231xx_unregister_media_device(dev);
 
-       usb_put_dev(dev->udev);
-
        /* Mark device as unused */
        clear_bit(dev->devno, &cx231xx_devused);
 }
@@ -1719,7 +1717,7 @@ static int cx231xx_usb_probe(struct usb_interface 
*interface,
                }
        } while (test_and_set_bit(nr, &cx231xx_devused));
 
-       udev = usb_get_dev(interface_to_usbdev(interface));
+       udev = interface_to_usbdev(interface);
 
        /* allocate memory for our device state and initialize it */
        dev = devm_kzalloc(&udev->dev, sizeof(*dev), GFP_KERNEL);
@@ -1915,7 +1913,6 @@ err_v4l2:
 err_media_init:
        usb_set_intfdata(interface, NULL);
 err_if:
-       usb_put_dev(udev);
        clear_bit(nr, &cx231xx_devused);
        return retval;
 }
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to