From: Roland McGrath Use force_sig in handle_vm86_trap like other machine traps do. Signed-off-by: Roland McGrath Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Oleg Nesterov Signed-off-by: Andrew Morton --- arch/x86/kernel/vm86_32.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff -puN arch/x86/kernel/vm86_32.c~x86-handle_vm86_trap-cleanup arch/x86/kernel/vm86_32.c --- a/arch/x86/kernel/vm86_32.c~x86-handle_vm86_trap-cleanup +++ a/arch/x86/kernel/vm86_32.c @@ -557,16 +557,9 @@ int handle_vm86_trap(struct kernel_vm86_ } if (trapno != 1) return 1; /* we let this handle by the calling routine */ - if (current->ptrace & PT_PTRACED) { - unsigned long flags; - spin_lock_irqsave(¤t->sighand->siglock, flags); - sigdelset(¤t->blocked, SIGTRAP); - recalc_sigpending(); - spin_unlock_irqrestore(¤t->sighand->siglock, flags); - } - send_sig(SIGTRAP, current, 1); current->thread.trap_no = trapno; current->thread.error_code = error_code; + force_sig(SIGTRAP, current); return 0; } _