From 3681c556d79797f132e18973611a14681ed47f76 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 09:52:50 +0100 Subject: [PATCH] media: bcm2835-unicam: Fix reference counting in unicam_open The reference counting of node->open was only incremented after a check that the node was v4l2_fh_is_singular_file, which resulted in the counting going wrong and s_power not being called at an appropriate time. Signed-off-by: Dave Stevenson --- drivers/media/platform/bcm2835/bcm2835-unicam.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/drivers/media/platform/bcm2835/bcm2835-unicam.c +++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c @@ -2170,16 +2170,18 @@ static int unicam_open(struct file *file goto unlock; } + node->open++; + if (!v4l2_fh_is_singular_file(file)) goto unlock; ret = v4l2_subdev_call(dev->sensor, core, s_power, 1); if (ret < 0 && ret != -ENOIOCTLCMD) { v4l2_fh_release(file); + node->open--; goto unlock; } - node->open++; ret = 0; unlock: