diff options
author | Jack Steiner <steiner@sgi.com> | 2006-02-15 19:46:50 -0600 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2006-02-16 10:20:08 -0800 |
commit | 6f6d75825dc49b082906b84537b4df28293c2977 (patch) | |
tree | f695ee2c9f493d4b67cc932f281753c9a4373caa /arch/ia64 | |
parent | 72166c35f0e15e5081e51304de48e73f8fdf5498 (diff) | |
download | op-kernel-dev-6f6d75825dc49b082906b84537b4df28293c2977.zip op-kernel-dev-6f6d75825dc49b082906b84537b4df28293c2977.tar.gz |
[IA64] Missing check for TIF_WORK if trace/audit enabled
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>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/entry.S | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 27b222c..930fdfc 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S @@ -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 |