summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorFabian Frederick <fabf@skynet.be>2015-02-20 19:12:53 +0100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2015-03-25 16:53:28 +1100
commit111fbc68fd895ba437bcb03d5dcc4dd21bc61df8 (patch)
treee1d46889e5888dc4c9ef8da7b96bffd14355cf08 /drivers
parent1f8c82ab1b0bc7e24601c0fca411fd27b9c883ef (diff)
powerpc/pmac: replace current->state by set_current_state()
Use helper functions to access current->state. Direct assignments are prone to races and therefore buggy. current->state = TASK_RUNNING can be replaced by __set_current_state() Thanks to Peter Zijlstra for the exact definition of the problem. Suggested-By: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/macintosh/via-pmu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index aed3cb07a6fa..f9512bfa6c3c 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -2112,7 +2112,7 @@ pmu_read(struct file *file, char __user *buf,
spin_lock_irqsave(&pp->lock, flags);
add_wait_queue(&pp->wait, &wait);
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_INTERRUPTIBLE);
for (;;) {
ret = -EAGAIN;
@@ -2141,7 +2141,7 @@ pmu_read(struct file *file, char __user *buf,
schedule();
spin_lock_irqsave(&pp->lock, flags);
}
- current->state = TASK_RUNNING;
+ __set_current_state(TASK_RUNNING);
remove_wait_queue(&pp->wait, &wait);
spin_unlock_irqrestore(&pp->lock, flags);