diff options
author | Max Kellermann <max@duempel.org> | 2016-03-21 14:30:28 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2016-05-07 16:43:53 +0200 |
commit | bf244f665d76d20312c80524689b32a752888838 (patch) | |
tree | 592a03ddfb450ffa7e0da8741a8bcfd373b80755 | |
parent | [media] drivers/media/media-device: move debug log before _devnode_unregister() (diff) | |
download | linux-bf244f665d76d20312c80524689b32a752888838.tar.xz linux-bf244f665d76d20312c80524689b32a752888838.zip |
[media] drivers/media/media-devnode: clear private_data before put_device()
Callbacks invoked from put_device() may free the struct media_devnode
pointer, so any cleanup needs to be done before put_device().
Signed-off-by: Max Kellermann <max@duempel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to '')
-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 64a4b1ef3dcd..b66dc9d0766b 100644 --- a/drivers/media/media-devnode.c +++ b/drivers/media/media-devnode.c @@ -197,10 +197,11 @@ static int media_release(struct inode *inode, struct file *filp) if (mdev->fops->release) mdev->fops->release(filp); + filp->private_data = NULL; + /* decrease the refcount unconditionally since the release() return value is ignored. */ put_device(&mdev->dev); - filp->private_data = NULL; return 0; } |