diff --git a/drivers/media/platform/bcm2835/bcm2835-unicam.c b/drivers/media/platform/bcm2835/bcm2835-unicam.c index c7e211d04ed3f2a711f464fc32ee5416b5b9c52d..a79fc4d99d369ae5205357c88989f4c110066d6b 100644 --- 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: