The patch titled fix broken vm86 interrupt/signal handling has been removed from the -mm tree. Its filename is fix-broken-vm86-interrupt-signal-handling.patch This patch was dropped because it was nacked by the maintainer ------------------------------------------------------ Subject: fix broken vm86 interrupt/signal handling From: "Aleksey Gorelov" <Aleksey_Gorelov@xxxxxxxxxxx> This patch: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c3ff8ec31c1249d268cd11390649768a12bec1b9 has broken vm86 interrupt/signal handling in case when vm86 is called from kernel space. In this scenario, if signal is pending because of vm86 interrupt, do_notify_resume/do_signal exits immediately due to user_mode() check, without processing any signals. Thus, resume_userspace handler is spinning in a tight loop with signal pending and TIF_SIGPENDING is set. Previously everything worked Ok. The following patch fixes the issue Signed-off-by: Aleksey Gorelov <aleksey_gorelov@xxxxxxxxxxx> Cc: Atsushi Nemoto <anemo@xxxxxxxxxxxxx> Cc: Roland McGrath <roland@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/i386/kernel/entry.S | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/entry.S~fix-broken-vm86-interrupt-signal-handling arch/i386/kernel/entry.S --- a/arch/i386/kernel/entry.S~fix-broken-vm86-interrupt-signal-handling +++ a/arch/i386/kernel/entry.S @@ -82,6 +82,12 @@ VM_MASK = 0x00020000 #define resume_kernel restore_nocheck #endif +#ifdef CONFIG_VM86 +#define resume_userspace_sig check_userspace +#else +#define resume_userspace_sig resume_userspace +#endif + #define SAVE_ALL \ cld; \ pushl %es; \ @@ -143,6 +149,7 @@ ret_from_exception: preempt_stop ret_from_intr: GET_THREAD_INFO(%ebp) +check_userspace: movl EFLAGS(%esp), %eax # mix EFLAGS and CS movb CS(%esp), %al testl $(VM_MASK | 3), %eax @@ -323,7 +330,7 @@ work_notifysig: # deal with pending s # vm86-space xorl %edx, %edx call do_notify_resume - jmp resume_userspace + jmp resume_userspace_sig ALIGN work_notifysig_v86: @@ -334,7 +341,7 @@ work_notifysig_v86: movl %eax, %esp xorl %edx, %edx call do_notify_resume - jmp resume_userspace + jmp resume_userspace_sig #endif # perform syscall exit tracing _ Patches currently in -mm which might be from Aleksey_Gorelov@xxxxxxxxxxx are fix-broken-vm86-interrupt-signal-handling.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html