summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorShuah Khan2019-04-02 02:43:18 +0200
committerMauro Carvalho Chehab2019-04-22 17:24:33 +0200
commit10cb050459852fd954a5b38c019d2313f3bfb3e2 (patch)
tree563e87f0fee252ea6744cb2e2525e78bd60a35f8 /drivers/media
parentmedia: au0828: Fix NULL pointer dereference in au0828_analog_stream_enable() (diff)
downloadkernel-qcow2-linux-10cb050459852fd954a5b38c019d2313f3bfb3e2.tar.gz
kernel-qcow2-linux-10cb050459852fd954a5b38c019d2313f3bfb3e2.tar.xz
kernel-qcow2-linux-10cb050459852fd954a5b38c019d2313f3bfb3e2.zip
media: Clear devnode->media_dev holding media_devnode_lock
Fix media_devnode_unregister() to clear devnode->media_dev while holding media_devnode_lock. media_devnode_register()'s cdev_add_error handling does this correctly. Signed-off-by: Shuah Khan <shuah@kernel.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/media-devnode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/media-devnode.c b/drivers/media/media-devnode.c
index 61dc05fcc55c..d5aa30eeff4a 100644
--- a/drivers/media/media-devnode.c
+++ b/drivers/media/media-devnode.c
@@ -291,8 +291,9 @@ void media_devnode_unregister(struct media_devnode *devnode)
mutex_lock(&media_devnode_lock);
/* Delete the cdev on this minor as well */
cdev_device_del(&devnode->cdev, &devnode->dev);
- mutex_unlock(&media_devnode_lock);
devnode->media_dev = NULL;
+ mutex_unlock(&media_devnode_lock);
+
put_device(&devnode->dev);
}