On Wed Feb 11 19:06:21 2026 +0100, Oliver Neukum wrote:
> If submitting the URB fails, the device will be unusable.
> Probe() must fail.
> 
> Fixes: 7a569f524dd36 ("V4L/DVB: IR/streamzap: functional in-kernel decoding")
> Cc: [email protected]
> Signed-off-by: Oliver Neukum <[email protected]>
> Signed-off-by: Sean Young <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/rc/streamzap.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

---

diff --git a/drivers/media/rc/streamzap.c b/drivers/media/rc/streamzap.c
index 7103da57c19f..307985d74fe8 100644
--- a/drivers/media/rc/streamzap.c
+++ b/drivers/media/rc/streamzap.c
@@ -219,9 +219,8 @@ static void streamzap_callback(struct urb *urb)
        case -ESHUTDOWN:
                /*
                 * this urb is terminated, clean up.
-                * sz might already be invalid at this point
                 */
-               dev_err(sz->dev, "urb terminated, status: %d\n", urb->status);
+               dev_dbg(sz->dev, "urb terminated, status: %d\n", urb->status);
                return;
        default:
                break;
@@ -358,11 +357,16 @@ static int streamzap_probe(struct usb_interface *intf,
 
        usb_set_intfdata(intf, sz);
 
-       if (usb_submit_urb(sz->urb_in, GFP_ATOMIC))
+       retval = usb_submit_urb(sz->urb_in, GFP_ATOMIC);
+       if (retval < 0) {
                dev_err(sz->dev, "urb submit failed\n");
+               goto rc_submit_fail;
+       }
 
        return 0;
-
+rc_submit_fail:
+       rc_free_device(sz->rdev);
+       usb_set_intfdata(intf, NULL);
 rc_dev_fail:
        usb_free_urb(sz->urb_in);
 free_buf_in:
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to