diff options
author | Fabian Frederick <fabf@skynet.be> | 2015-02-20 19:12:53 +0100 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2015-03-25 16:53:28 +1100 |
commit | 111fbc68fd895ba437bcb03d5dcc4dd21bc61df8 (patch) | |
tree | e1d46889e5888dc4c9ef8da7b96bffd14355cf08 /drivers | |
parent | 1f8c82ab1b0bc7e24601c0fca411fd27b9c883ef (diff) | |
download | op-kernel-dev-111fbc68fd895ba437bcb03d5dcc4dd21bc61df8.zip op-kernel-dev-111fbc68fd895ba437bcb03d5dcc4dd21bc61df8.tar.gz |
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.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c index aed3cb0..f9512bf 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); |