diff options
author | Max Kellermann <max@duempel.org> | 2016-03-21 10:30:28 -0300 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2020-04-28 19:03:48 +0100 |
commit | d4f640d3c8e585f0accf523515daaa303108a951 (patch) | |
tree | 37b3972677013035de1c8a0935056c6ef4f3c539 | |
parent | f533f163275873aa1f0b247db0fdc5cd452c5fa2 (diff) | |
download | linux-stable-d4f640d3c8e585f0accf523515daaa303108a951.tar.gz |
drivers/media/media-devnode: clear private_data before put_device()
commit bf244f665d76d20312c80524689b32a752888838 upstream.
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>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-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 a8cb52dc8c4ff..6c56aebd8db0f 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; } |