]> err.no Git - linux-2.6/commitdiff
[IA64] Missing check for TIF_WORK if trace/audit enabled
authorJack Steiner <steiner@sgi.com>
Thu, 16 Feb 2006 01:46:50 +0000 (19:46 -0600)
committerTony Luck <tony.luck@intel.com>
Thu, 16 Feb 2006 18:20:08 +0000 (10:20 -0800)
It appears that if auditing is enabled, the kernel fails to
check for pending signals before returning to user mode.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Acked-by: Ken Chen <kenneth.w.chen@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/entry.S

index 27b222c277e4d77049b35c6bf972dd2995156f4f..930fdfca6ddb610092a92f692419469fe4cab39d 100644 (file)
@@ -569,7 +569,9 @@ GLOBAL_ENTRY(ia64_trace_syscall)
 .mem.offset 0,0; st8.spill [r2]=r8             // store return value in slot for r8
 .mem.offset 8,0; st8.spill [r3]=r10            // clear error indication in slot for r10
        br.call.sptk.many rp=syscall_trace_leave // give parent a chance to catch return value
-.ret3: br.cond.sptk .work_pending_syscall_end
+.ret3:
+(pUStk)        cmp.eq.unc p6,p0=r0,r0                  // p6 <- pUStk
+       br.cond.sptk .work_pending_syscall_end
 
 strace_error:
        ld8 r3=[r2]                             // load pt_regs.r8