Re: [PATCH] media: as102: drop device reference on probe failure
From: Bryan O'Donoghue
Date: Mon Jun 22 2026 - 21:44:40 EST
On 20/06/2026 09:40, Jiawen Liu wrote:
as102_usb_probe() initializes the kref and takes a USB device
reference before registering the USB minor.
If stream allocation or DVB registration fails later, the error
path deregisters the minor but does not drop the initial kref.
Use kref_put() so as102_usb_release() drops the USB reference.
Signed-off-by: Jiawen Liu <1298662399@xxxxxx>
---
drivers/media/usb/as102/as102_usb_drv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/usb/as102/as102_usb_drv.c b/drivers/media/usb/as102/as102_usb_drv.c
index a11024451ceb..ad6c5837f1d7 100644
--- a/drivers/media/usb/as102/as102_usb_drv.c
+++ b/drivers/media/usb/as102/as102_usb_drv.c
@@ -405,6 +405,7 @@ static int as102_usb_probe(struct usb_interface *intf,
failed_stream:
usb_set_intfdata(intf, NULL);
usb_deregister_dev(intf, &as102_usb_class_driver);
+ kref_put(&as102_dev->kref, as102_usb_release);
return ret;
failed:
usb_put_dev(as102_dev->bus_adap.usb_dev);
base-commit: 9e7e6633458362db72427b48effad8d759131c35
--
2.34.1
Missing a Fixes: and Cc: stable
But also why not:
➜ git diff
diff --git a/drivers/media/usb/as102/as102_usb_drv.c b/drivers/media/usb/as102/as102_usb_drv.c
index a11024451cebd..8e480ab78f9b2 100644
--- a/drivers/media/usb/as102/as102_usb_drv.c
+++ b/drivers/media/usb/as102/as102_usb_drv.c
@@ -403,9 +403,7 @@ static int as102_usb_probe(struct usb_interface *intf,
failed_dvb:
as102_free_usb_stream_buffer(as102_dev);
failed_stream:
- usb_set_intfdata(intf, NULL);
usb_deregister_dev(intf, &as102_usb_class_driver);
- return ret;
failed:
usb_put_dev(as102_dev->bus_adap.usb_dev);
usb_set_intfdata(intf, NULL);
Which is the logical inversion of the setup ?
---
bod