From: Hans Verkuil <hans.verk...@cisco.com>

Always release the queue if the owner closes its filehandle and not when
it is the last open filehandle.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
---
 drivers/media/platform/soc_camera/soc_camera.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/media/platform/soc_camera/soc_camera.c 
b/drivers/media/platform/soc_camera/soc_camera.c
index 0b09281..9087fed 100644
--- a/drivers/media/platform/soc_camera/soc_camera.c
+++ b/drivers/media/platform/soc_camera/soc_camera.c
@@ -788,20 +788,21 @@ static int soc_camera_close(struct file *file)
        struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
 
        mutex_lock(&ici->host_lock);
+       if (icd->streamer == file) {
+               if (ici->ops->init_videobuf2)
+                       vb2_queue_release(&icd->vb2_vidq);
+               icd->streamer = NULL;
+       }
        icd->use_count--;
        if (!icd->use_count) {
                pm_runtime_suspend(&icd->vdev->dev);
                pm_runtime_disable(&icd->vdev->dev);
 
-               if (ici->ops->init_videobuf2)
-                       vb2_queue_release(&icd->vb2_vidq);
                __soc_camera_power_off(icd);
 
                soc_camera_remove_device(icd);
        }
 
-       if (icd->streamer == file)
-               icd->streamer = NULL;
        mutex_unlock(&ici->host_lock);
 
        module_put(ici->ops->owner);
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to