[media] v4l2-dev.c: Move video_put() after debug printk
It is possible that video_put() releases video_device struct, provoking a panic when debug printk wants to get video_device node name. Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
cd779254f9
commit
8f695d3f07
@ -478,12 +478,12 @@ static int v4l2_open(struct inode *inode, struct file *filp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
err:
|
err:
|
||||||
/* decrease the refcount in case of an error */
|
|
||||||
if (ret)
|
|
||||||
video_put(vdev);
|
|
||||||
if (vdev->debug)
|
if (vdev->debug)
|
||||||
printk(KERN_DEBUG "%s: open (%d)\n",
|
printk(KERN_DEBUG "%s: open (%d)\n",
|
||||||
video_device_node_name(vdev), ret);
|
video_device_node_name(vdev), ret);
|
||||||
|
/* decrease the refcount in case of an error */
|
||||||
|
if (ret)
|
||||||
|
video_put(vdev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -500,12 +500,12 @@ static int v4l2_release(struct inode *inode, struct file *filp)
|
|||||||
if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags))
|
if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags))
|
||||||
mutex_unlock(vdev->lock);
|
mutex_unlock(vdev->lock);
|
||||||
}
|
}
|
||||||
/* decrease the refcount unconditionally since the release()
|
|
||||||
return value is ignored. */
|
|
||||||
video_put(vdev);
|
|
||||||
if (vdev->debug)
|
if (vdev->debug)
|
||||||
printk(KERN_DEBUG "%s: release\n",
|
printk(KERN_DEBUG "%s: release\n",
|
||||||
video_device_node_name(vdev));
|
video_device_node_name(vdev));
|
||||||
|
/* decrease the refcount unconditionally since the release()
|
||||||
|
return value is ignored. */
|
||||||
|
video_put(vdev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user