From 5f3f254f7c138a22a544b80ce2c14a3fc4ed711e Mon Sep 17 00:00:00 2001 From: Kevin Baradon Date: Mon, 22 Apr 2013 16:09:46 -0300 Subject: [media] media/rc/imon.c: kill urb when send_packet() is interrupted This avoids: Apr 12 23:52:16 homeserver kernel: imon:send_packet: task interrupted Apr 12 23:52:16 homeserver kernel: ------------[ cut here ]------------ Apr 12 23:52:16 homeserver kernel: WARNING: at drivers/usb/core/urb.c:327 usb_submit_urb+0x353/0x370() Apr 12 23:52:16 homeserver kernel: Hardware name: Unknow Apr 12 23:52:16 homeserver kernel: URB f64b6f00 submitted while active Apr 12 23:52:16 homeserver kernel: Modules linked in: Apr 12 23:52:16 homeserver kernel: Pid: 3154, comm: LCDd Not tainted 3.8.6-htpc-00005-g9e6fc5e #26 Apr 12 23:52:16 homeserver kernel: Call Trace: Apr 12 23:52:16 homeserver kernel: [] ? warn_slowpath_common+0x78/0xb0 Apr 12 23:52:16 homeserver kernel: [] ? usb_submit_urb+0x353/0x370 Apr 12 23:52:16 homeserver kernel: [] ? usb_submit_urb+0x353/0x370 Apr 12 23:52:16 homeserver kernel: [] ? imon_ir_change_protocol+0x150/0x150 Apr 12 23:52:16 homeserver kernel: [] ? warn_slowpath_fmt+0x33/0x40 Apr 12 23:52:16 homeserver kernel: [] ? usb_submit_urb+0x353/0x370 Apr 12 23:52:16 homeserver kernel: [] ? send_packet+0x97/0x270 Apr 12 23:52:16 homeserver kernel: [] ? send_packet+0x12e/0x270 Apr 12 23:52:16 homeserver kernel: [] ? do_nanosleep+0xa3/0xd0 Apr 12 23:52:16 homeserver kernel: [] ? vfd_write+0xae/0x250 Apr 12 23:52:16 homeserver kernel: [] ? lcd_write+0x180/0x180 Apr 12 23:52:16 homeserver kernel: [] ? vfs_write+0x89/0x140 Apr 12 23:52:16 homeserver kernel: [] ? sys_write+0x4a/0x90 Apr 12 23:52:16 homeserver kernel: [] ? sysenter_do_call+0x12/0x26 Apr 12 23:52:16 homeserver kernel: ---[ end trace a0b6f0fcfd2f9a1d ]--- Apr 12 23:52:16 homeserver kernel: imon:send_packet: error submitting urb(-16) Apr 12 23:52:16 homeserver kernel: imon:vfd_write: send packet #3 failed Apr 12 23:52:16 homeserver kernel: imon:send_packet: error submitting urb(-16) Apr 12 23:52:16 homeserver kernel: imon:vfd_write: send packet #0 failed Signed-off-by: Kevin Baradon Signed-off-by: Mauro Carvalho Chehab --- drivers/media/rc/imon.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers/media/rc/imon.c') diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c index 3af7bb6c9f30..72e3fa652481 100644 --- a/drivers/media/rc/imon.c +++ b/drivers/media/rc/imon.c @@ -528,8 +528,10 @@ static int send_packet(struct imon_context *ictx) mutex_unlock(&ictx->lock); retval = wait_for_completion_interruptible( &ictx->tx.finished); - if (retval) + if (retval) { + usb_kill_urb(ictx->tx_urb); pr_err_ratelimited("task interrupted\n"); + } mutex_lock(&ictx->lock); retval = ictx->tx.status; -- cgit v1.2.3