mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-30 07:34:12 +08:00
h8300: signal stack fix
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
This commit is contained in:
parent
42b510eb56
commit
9ee05bb627
@ -95,7 +95,7 @@ restore_sigcontext(struct sigcontext *usc, int *pd0)
|
||||
regs->ccr |= ccr;
|
||||
regs->orig_er0 = -1; /* disable syscall checks */
|
||||
err |= __get_user(usp, &usc->sc_usp);
|
||||
wrusp(usp);
|
||||
regs->sp = usp;
|
||||
|
||||
err |= __get_user(er0, &usc->sc_er0);
|
||||
*pd0 = er0;
|
||||
@ -180,7 +180,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
|
||||
return -EFAULT;
|
||||
|
||||
/* Set up to return from userspace. */
|
||||
ret = frame->retcode;
|
||||
ret = (unsigned char *)&frame->retcode;
|
||||
if (ksig->ka.sa.sa_flags & SA_RESTORER)
|
||||
ret = (unsigned char *)(ksig->ka.sa.sa_restorer);
|
||||
else {
|
||||
@ -196,8 +196,8 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
|
||||
return -EFAULT;
|
||||
|
||||
/* Set up registers for signal handler */
|
||||
wrusp((unsigned long) frame);
|
||||
regs->pc = (unsigned long) ksig->ka.sa.sa_handler;
|
||||
regs->sp = (unsigned long)frame;
|
||||
regs->pc = (unsigned long)ksig->ka.sa.sa_handler;
|
||||
regs->er0 = ksig->sig;
|
||||
regs->er1 = (unsigned long)&(frame->info);
|
||||
regs->er2 = (unsigned long)&frame->uc;
|
||||
|
Loading…
Reference in New Issue
Block a user