Thread (20 messages) 20 messages, 2 authors, 2015-02-22

Re: [PATCH v4 05/15] h8300: Process and signal

From: Yoshinori Sato <ysato@users.sourceforge.jp>
Date: 2015-02-22 06:21:13
Also in: lkml

At Sat, 21 Feb 2015 09:51:23 +0000,
Al Viro wrote:
On Sat, Feb 21, 2015 at 04:53:49PM +0900, Yoshinori Sato wrote:
quoted
+static inline void *
+get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size)
+{
+	unsigned long usp;
+
+	/* Default to using normal stack.  */
+	usp = rdusp();
+
+	/* This is the X/Open sanctioned signal stack switching.  */
+	if (ka->sa.sa_flags & SA_ONSTACK) {
+		if (!sas_ss_flags(usp))
+			usp = current->sas_ss_sp + current->sas_ss_size;
+	}
Use sigsp(), please.  Pass ksig to that sucker and it'll become
	return (void *)((sigsp(rdusp, ksig) - frame_size) & -8UL);
OK.
quoted
+static void do_signal(struct pt_regs *regs)
+	 * We want the common case to go fast, which
+	 * is why we may in certain cases get here from
+	 * kernel mode. Just return without doing anything
+	 * if so.
+	 */
+	if ((regs->ccr & 0x10))
+		return;
Can we get there in kernel mode, actually?
It case checking for entry.S
Removed.

Thanks.

-- 
Yoshinori Sato
[off-list ref]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help