summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Farnsworth2013-09-20 18:15:28 +0200
committerMauro Carvalho Chehab2013-10-14 11:37:00 +0200
commit9c9cff55bf4f13dc2fffb5abe466f13e4ac155f9 (patch)
tree7dbe5aede4243caf9e71558819704c4e9e2243d1
parent[media] adv7511: fix error return code in adv7511_probe() (diff)
downloadkernel-qcow2-linux-9c9cff55bf4f13dc2fffb5abe466f13e4ac155f9.tar.gz
kernel-qcow2-linux-9c9cff55bf4f13dc2fffb5abe466f13e4ac155f9.tar.xz
kernel-qcow2-linux-9c9cff55bf4f13dc2fffb5abe466f13e4ac155f9.zip
[media] saa7134: Fix crash when device is closed before streamoff
pm_qos_remove_request was not called on video_release, resulting in the PM core's list of requests being corrupted when the file handle was freed. This has no immediate symptoms, but later in operation, the kernel will panic as the PM core dereferences a dangling pointer. Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r--drivers/media/pci/saa7134/saa7134-video.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/media/pci/saa7134/saa7134-video.c b/drivers/media/pci/saa7134/saa7134-video.c
index e12bbd8c3f0b..fb60da85bc2c 100644
--- a/drivers/media/pci/saa7134/saa7134-video.c
+++ b/drivers/media/pci/saa7134/saa7134-video.c
@@ -1455,6 +1455,7 @@ static int video_release(struct file *file)
/* stop video capture */
if (res_check(fh, RESOURCE_VIDEO)) {
+ pm_qos_remove_request(&dev->qos_request);
videobuf_streamoff(&fh->cap);
res_free(dev,fh,RESOURCE_VIDEO);
}