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: > > > +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. > > > +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 <ysato@xxxxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html