x86_32: Call do_notify_resume() with interrupts enabled
RFC PATCH 1/1 x86_32: Call do_notify_resume() with interrupts enabled
do_notify_resume() gets called with interrupts disabled on x86_32. This is different from the x86_64 behavior, where interrupts are enabled at the time.
Queries on lkml on this issue hasn't yielded any clear answer. Lets make x86_32 behave the same as x86_64, unless there is a real reason to maintain status quo.
Please refer https://lkml.org/lkml/2011/9/27/130 for more details
My 32-bit machine works fine (tm) with the patch below
Signed-off-by Srikar Dronamraju <[email protected]>
--- arch/x86/kernel/entry_32.S | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
arch/x86/kernel/entry_32.S +2 -0
@@ -625,6 +625,7 @@ work_notifysig: # deal with pending signals and movl %esp, %eax jne work_notifysig_v86 # returning to kernel-space or # vm86-space + ENABLE_INTERRUPTS(CLBR_NONE) xorl %edx, %edx call do_notify_resume jmp resume_userspace_sig
@@ -638,6 +639,7 @@ work_notifysig: # deal with pending signals and #else movl %esp, %eax #endif + ENABLE_INTERRUPTS(CLBR_NONE) xorl %edx, %edx call do_notify_resume jmp resume_userspace_sig