| From 3681c556d79797f132e18973611a14681ed47f76 Mon Sep 17 00:00:00 2001 |
| From: Dave Stevenson <dave.stevenson@raspberrypi.com> |
| 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 <dave.stevenson@raspberrypi.com> |
| --- |
| 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: |