Skip to contentSkip to conversation

x86_32: Call do_notify_resume() with interrupts enabled

RFC PATCH New Srikar Dronamraju 1 participant 1 message Oct 5, 2011 x86

lore
Share & tools
lore
#0 lore raw

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

---
 arch/x86/kernel/entry_32.S |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
arch/x86/kernel/entry_32.S +2 -0
index f3f6f53..29d72ca 100644
@@ -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