[xtensa-cvscommit] linux/arch/xtensa/kernel signal.c,1.4,1.5
Brought to you by:
zankel
|
From: <ma...@us...> - 2003-04-22 21:36:17
|
Update of /cvsroot/xtensa/linux/arch/xtensa/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv25303 Modified Files: signal.c Log Message: Avoid overwriting the save area below user SP when generating signal frames. Index: signal.c =================================================================== RCS file: /cvsroot/xtensa/linux/arch/xtensa/kernel/signal.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** signal.c 20 Mar 2003 20:41:09 -0000 1.4 --- signal.c 22 Apr 2003 21:36:13 -0000 1.5 *************** *** 31,34 **** --- 31,40 ---- #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) + /* + * Number of bytes reserved below the stack pointer + * (16 bytes for caller's a0-a3 save area, 16 bytes for misc + * uses such as nested C function call chain pointer: */ + #define XTENSA_RESERVED_BELOW_SP 32 + asmlinkage long sys_wait4(pid_t pid,unsigned int * stat_addr, int options, struct rusage * ru); asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset); *************** *** 402,405 **** --- 408,413 ---- if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! on_sig_stack(sp)) sp = current->sas_ss_sp + current->sas_ss_size; + else + sp -= XTENSA_RESERVED_BELOW_SP; return (void *)((sp - frame_size) & -16ul); |