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
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]