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>
This commit is contained in:
Родитель
1f8c82ab1b
Коммит
111fbc68fd
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче