diff options
author | Randolph Chung <tausq@parisc-linux.org> | 2005-10-21 22:49:47 -0400 |
---|---|---|
committer | Kyle McMartin <kyle@parisc-linux.org> | 2005-10-21 22:49:47 -0400 |
commit | 40c72f20e89300dfaea28300ee17aa56d230d63f (patch) | |
tree | 9303278860122e15e1def56caac7a73a556429c1 /arch/parisc/kernel/signal.c | |
parent | eba917273eb8579dd8ae36f6645518ca5579a2ab (diff) |
[PARISC] Prevent signal loops if we have a problem setting up a frame
2.6.13-rc6-pa2
use force_sigsegv() if we have a problem setting up a frame. This is
required to prevent SIGSEGV loops.
Signed-off-by: Randolph Chung <tausq@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'arch/parisc/kernel/signal.c')
-rw-r--r-- | arch/parisc/kernel/signal.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index 6c905c128c2a..befdfe700616 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
@@ -490,15 +490,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
490 | 490 | ||
491 | give_sigsegv: | 491 | give_sigsegv: |
492 | DBG(1,"setup_rt_frame: sending SIGSEGV\n"); | 492 | DBG(1,"setup_rt_frame: sending SIGSEGV\n"); |
493 | if (sig == SIGSEGV) | 493 | force_sigsegv(sig, current); |
494 | ka->sa.sa_handler = SIG_DFL; | ||
495 | si.si_signo = SIGSEGV; | ||
496 | si.si_errno = 0; | ||
497 | si.si_code = SI_KERNEL; | ||
498 | si.si_pid = current->pid; | ||
499 | si.si_uid = current->uid; | ||
500 | si.si_addr = frame; | ||
501 | force_sig_info(SIGSEGV, &si, current); | ||
502 | return 0; | 494 | return 0; |
503 | } | 495 | } |
504 | 496 | ||