summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/usb/dvb-usb-v2/dvb_usb_core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
index e2d73e1a7ae0..f99015937957 100644
--- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
+++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
@@ -265,7 +265,6 @@ static inline int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed,
/* stop feeding if it is last pid */
if (adap->feed_count == 0) {
dev_dbg(&d->udev->dev, "%s: stop feeding\n", __func__);
- usb_urb_killv2(&adap->stream);
if (d->props->streaming_ctrl) {
ret = d->props->streaming_ctrl(
@@ -274,9 +273,11 @@ static inline int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed,
dev_err(&d->udev->dev, "%s: streaming_ctrl() " \
"failed=%d\n", KBUILD_MODNAME,
ret);
+ usb_urb_killv2(&adap->stream);
goto err_mutex_unlock;
}
}
+ usb_urb_killv2(&adap->stream);
mutex_unlock(&adap->sync_mutex);
}