summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-05-03 23:32:09 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-05-03 23:32:08 -0700
commit6669dae7d1943930d5be356dddd5fdb733339fb4 (patch)
treec676256528b27f64d2a0f32a85d666e8c3d79203
parenta1e1d01429ac1fb8cc68c546a82a220b77ca4dd7 (diff)
parent84f8c42e5d848b1d04f49d253f98296e8c2280b9 (diff)
Merge "msm: camera: Allow driver file to be opend only once."
-rw-r--r--drivers/media/platform/msm/camera_v2/msm.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/media/platform/msm/camera_v2/msm.c b/drivers/media/platform/msm/camera_v2/msm.c
index 8596366a70f0..f95cc37f5c2c 100644
--- a/drivers/media/platform/msm/camera_v2/msm.c
+++ b/drivers/media/platform/msm/camera_v2/msm.c
@@ -1015,11 +1015,9 @@ static int msm_open(struct file *filep)
BUG_ON(!pvdev);
/* !!! only ONE open is allowed !!! */
- if (atomic_read(&pvdev->opened))
+ if (atomic_cmpxchg(&pvdev->opened, 0, 1))
return -EBUSY;
- atomic_set(&pvdev->opened, 1);
-
spin_lock_irqsave(&msm_pid_lock, flags);
msm_pid = get_pid(task_pid(current));
spin_unlock_irqrestore(&msm_pid_lock, flags);