aboutsummaryrefslogtreecommitdiff
path: root/drivers/pps/pps.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-11-24 17:16:30 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-11-24 17:16:30 +1100
commit1e43bee9c70654b4d52472c19e5f0a0cc18b6b36 (patch)
treeff601ec0c0d14125d0324f21b3c7e6d5e19fa252 /drivers/pps/pps.c
parent7d6709a20866a885916214590b7c394a21be9e25 (diff)
parenta8a8a669ea13d792296737505adc43ccacf3a648 (diff)
Merge commit 'origin/master' into next
Diffstat (limited to 'drivers/pps/pps.c')
-rw-r--r--drivers/pps/pps.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/pps/pps.c b/drivers/pps/pps.c
index fea17e7805e..ca5183bdad8 100644
--- a/drivers/pps/pps.c
+++ b/drivers/pps/pps.c
@@ -71,9 +71,14 @@ static long pps_cdev_ioctl(struct file *file,
case PPS_GETPARAMS:
pr_debug("PPS_GETPARAMS: source %d\n", pps->id);
- /* Return current parameters */
- err = copy_to_user(uarg, &pps->params,
- sizeof(struct pps_kparams));
+ spin_lock_irq(&pps->lock);
+
+ /* Get the current parameters */
+ params = pps->params;
+
+ spin_unlock_irq(&pps->lock);
+
+ err = copy_to_user(uarg, &params, sizeof(struct pps_kparams));
if (err)
return -EFAULT;