forked from Minki/linux
sh: Ensure IRQs are enabled across do_notify_resume().
do_notify_resume() can trigger the freezer via the try_to_freeze() path
(both explicitly through a redundant call in do_signal() or via
get_signal_to_deliver()). That IRQs were disabled across this callsite
became apparent with the might_sleep() introduction in try_to_freeze() by
Tejun in a0acae0e88
, resulting in:
BUG: sleeping function called from invalid context at include/linux/freezer.h:45
in_atomic(): 0, irqs_disabled(): 1, pid: 819, name: ntpd
no locks held by ntpd/819.
Stack: (0x9c81be80 to 0x9c81c000)
...
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
33dc5c1000
commit
6330c04bb4
@ -145,6 +145,7 @@ work_notifysig:
|
|||||||
mov r15, r4
|
mov r15, r4
|
||||||
mov r12, r5 ! set arg1(save_r0)
|
mov r12, r5 ! set arg1(save_r0)
|
||||||
mov r0, r6
|
mov r0, r6
|
||||||
|
sti
|
||||||
mov.l 2f, r1
|
mov.l 2f, r1
|
||||||
mov.l 3f, r0
|
mov.l 3f, r0
|
||||||
jmp @r1
|
jmp @r1
|
||||||
|
Loading…
Reference in New Issue
Block a user