All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jack Steiner <steiner@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH] - Missing check for TIF_WORK if trace/audit enabled
Date: Thu, 16 Feb 2006 01:46:50 +0000	[thread overview]
Message-ID: <20060216014650.GA23758@sgi.com> (raw)
In-Reply-To: <20060215212922.GA28239@sgi.com>


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>


---

Tony - I think this should go into 2.6.16

Second version. Moved the ".ret" label as suggested by Ken.


I noticed the problem running a signal test that sent SIGUSR2 signals to 
itself. Signals were being dropped. I isolated the problem to an uninitialzed
p6:
	
	ia64_trace_syscall -> work_pending_syscall_end -> work_processed_syscall

work_processed_syscall assumes p6 indicates if the kernel is returning to user mode.
Nothing set p6 for this particular path.



Index: linux/arch/ia64/kernel/entry.S
=================================--- linux.orig/arch/ia64/kernel/entry.S	2006-02-15 12:32:49.836316366 -0600
+++ linux/arch/ia64/kernel/entry.S	2006-02-15 19:35:24.539592133 -0600
@@ -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

      parent reply	other threads:[~2006-02-16  1:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-15 21:29 [PATCH] - Missing check for TIF_WORK if trace/audit enabled Jack Steiner
2006-02-16  1:03 ` Chen, Kenneth W
2006-02-16  1:46 ` Jack Steiner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060216014650.GA23758@sgi.com \
    --to=steiner@sgi.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.