V4L/DVB (9194): stk-webcam: fix crash on close after disconnect
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>
This commit is contained in:
parent
081d868fae
commit
f051ae1866
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue