m68knommu: fix compare race in sched related code
The interrupts must be disabled before considering the need resched bit of the task struct and they have to be disabled before calling schedule() Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
0042a1f7ec
Коммит
6c5a7d504f
|
@ -103,6 +103,7 @@ ret_from_signal:
|
|||
addql #4,%sp
|
||||
|
||||
ret_from_exception:
|
||||
move #0x2700,%sr /* disable intrs */
|
||||
btst #5,%sp@(PT_SR) /* check if returning to kernel */
|
||||
jeq Luser_return /* if so, skip resched, signals */
|
||||
|
||||
|
@ -156,6 +157,7 @@ Lreturn:
|
|||
|
||||
Lwork_to_do:
|
||||
movel %a0@(TI_FLAGS),%d1 /* get thread_info->flags */
|
||||
move #0x2000,%sr /* enable intrs again */
|
||||
btst #TIF_NEED_RESCHED,%d1
|
||||
jne reschedule
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче