X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=arch%2Fs390%2Fkernel%2Fsignal.c;h=ee7ac8b11782671fb1dd7468deec1b0899db7ac5;hb=a26272e5200765691e67d6780e52b32498fdb659;hp=6289945562b01d4278bea7286ded246eb13efe3c;hpb=f91b22c35f6b0ae06ec5b67922eca1999c3b6e0a;p=~andy%2Flinux diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 6289945562b..ee7ac8b1178 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c @@ -313,6 +313,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, To avoid breaking binary compatibility, they are passed as args. */ regs->gprs[4] = current->thread.trap_no; regs->gprs[5] = current->thread.prot_addr; + regs->gprs[6] = task_thread_info(current)->last_break; /* Place signal number on stack to allow backtrace from handler. */ if (__put_user(regs->gprs[2], (int __user *) &frame->signo)) @@ -376,6 +377,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, regs->gprs[2] = map_signal(sig); regs->gprs[3] = (unsigned long) &frame->info; regs->gprs[4] = (unsigned long) &frame->uc; + regs->gprs[5] = task_thread_info(current)->last_break; return 0; give_sigsegv: