Skip to content

Commit

Permalink
V4L/DVB (9194): stk-webcam: fix crash on close after disconnect
Browse files Browse the repository at this point in the history
This patch prevents stk-webcam from updating usb device information
once the camera has been removed. This prevents a crash that would
otherwise occur if the camera is disconnected while it is still in
use.

Signed-off-by: David Ellingsworth <david@identd.dyndns.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
David Ellingsworth authored and Mauro Carvalho Chehab committed Oct 17, 2008
1 parent 081d868 commit f051ae1
Showing 1 changed file with 7 additions and 11 deletions.
18 changes: 7 additions & 11 deletions drivers/media/video/stk-webcam.c
Original file line number Diff line number Diff line change
Expand Up @@ -559,7 +559,7 @@ static void stk_clean_iso(struct stk_camera *dev)

urb = dev->isobufs[i].urb;
if (urb) {
if (atomic_read(&dev->urbs_used))
if (atomic_read(&dev->urbs_used) && is_present(dev))
usb_kill_urb(urb);
usb_free_urb(urb);
}
Expand Down Expand Up @@ -688,18 +688,14 @@ static int v4l_stk_release(struct inode *inode, struct file *fp)
{
struct stk_camera *dev = fp->private_data;

if (dev->owner != fp) {
usb_autopm_put_interface(dev->interface);
return 0;
if (dev->owner == fp) {
stk_stop_stream(dev);
stk_free_buffers(dev);
dev->owner = NULL;
}

stk_stop_stream(dev);

stk_free_buffers(dev);

dev->owner = NULL;

usb_autopm_put_interface(dev->interface);
if(is_present(dev))
usb_autopm_put_interface(dev->interface);

return 0;
}
Expand Down

0 comments on commit f051ae1

Please sign in to comment.