diff options
author | Shuah Khan <shuah@kernel.org> | 2019-04-02 03:43:18 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2019-04-22 18:24:33 +0300 |
commit | 10cb050459852fd954a5b38c019d2313f3bfb3e2 (patch) | |
tree | 563e87f0fee252ea6744cb2e2525e78bd60a35f8 /drivers/media/media-devnode.c | |
parent | 898bc40bfcc26abb6e06e960d6d4754c36c58b50 (diff) | |
download | linux-10cb050459852fd954a5b38c019d2313f3bfb3e2.tar.xz |
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/media-devnode.c')
-rw-r--r-- | drivers/media/media-devnode.c | 3 |
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); } |