diff options
author | Matt Fleming <matt.fleming@intel.com> | 2012-03-21 19:33:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 20:54:55 -0400 |
commit | fa47ac59020e91082386f65a01f3e8cc6116ef95 (patch) | |
tree | 0dec4f41b6c8c020b1bea7c05fdf32e770b359ce /arch/xtensa | |
parent | 7904ac84244b59f536c2a5d1066a10f46df07b08 (diff) |
xtensa: don't reimplement force_sigsegv()
Instead of open coding the sequence from force_sigsegv() just call it.
This also fixes a bug because we were modifying ka->sa.sa_handler (which
is a copy of sighand->action[]), whereas the intention of the code was to
modify sighand->action[] directly.
As the original code was working with a copy it had no effect on signal
delivery.
Acked-by: Oleg Nesterov <oleg@redhat.com>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/xtensa')
-rw-r--r-- | arch/xtensa/kernel/signal.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/xtensa/kernel/signal.c b/arch/xtensa/kernel/signal.c index f2220b5bdce6..4f53770c42ec 100644 --- a/arch/xtensa/kernel/signal.c +++ b/arch/xtensa/kernel/signal.c | |||
@@ -425,9 +425,7 @@ static void setup_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
425 | return; | 425 | return; |
426 | 426 | ||
427 | give_sigsegv: | 427 | give_sigsegv: |
428 | if (sig == SIGSEGV) | 428 | force_sigsegv(sig, current); |
429 | ka->sa.sa_handler = SIG_DFL; | ||
430 | force_sig(SIGSEGV, current); | ||
431 | } | 429 | } |
432 | 430 | ||
433 | /* | 431 | /* |