Skip to content

Commit ecd0c50

Browse files
oneukumgregkh
authored andcommitted
media: rc: streamzap: Error handling in probe
commit 4284499 upstream. If submitting the URB fails, the device will be unusable. Probe() must fail. Fixes: 7a569f5 ("V4L/DVB: IR/streamzap: functional in-kernel decoding") Cc: stable@vger.kernel.org Signed-off-by: Oliver Neukum <oneukum@suse.com> Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 63a960b commit ecd0c50

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

drivers/media/rc/streamzap.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,8 @@ static void streamzap_callback(struct urb *urb)
219219
case -ESHUTDOWN:
220220
/*
221221
* this urb is terminated, clean up.
222-
* sz might already be invalid at this point
223222
*/
224-
dev_err(sz->dev, "urb terminated, status: %d\n", urb->status);
223+
dev_dbg(sz->dev, "urb terminated, status: %d\n", urb->status);
225224
return;
226225
default:
227226
break;
@@ -358,11 +357,16 @@ static int streamzap_probe(struct usb_interface *intf,
358357

359358
usb_set_intfdata(intf, sz);
360359

361-
if (usb_submit_urb(sz->urb_in, GFP_ATOMIC))
360+
retval = usb_submit_urb(sz->urb_in, GFP_ATOMIC);
361+
if (retval < 0) {
362362
dev_err(sz->dev, "urb submit failed\n");
363+
goto rc_submit_fail;
364+
}
363365

364366
return 0;
365-
367+
rc_submit_fail:
368+
rc_free_device(sz->rdev);
369+
usb_set_intfdata(intf, NULL);
366370
rc_dev_fail:
367371
usb_free_urb(sz->urb_in);
368372
free_buf_in:

0 commit comments

Comments
 (0)