diff options
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/signal_32.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c index 46170a9a7221..eee29257a8ae 100644 --- a/arch/sh/kernel/signal_32.c +++ b/arch/sh/kernel/signal_32.c | |||
@@ -398,10 +398,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, | |||
398 | pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n", | 398 | pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n", |
399 | current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); | 399 | current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); |
400 | 400 | ||
401 | flush_cache_sigtramp(regs->pr); | 401 | flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode)); |
402 | |||
403 | if ((-regs->pr & (L1_CACHE_BYTES-1)) < sizeof(frame->retcode)) | ||
404 | flush_cache_sigtramp(regs->pr + L1_CACHE_BYTES); | ||
405 | 402 | ||
406 | return 0; | 403 | return 0; |
407 | 404 | ||
@@ -486,10 +483,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
486 | pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n", | 483 | pr_debug("SIG deliver (%s:%d): sp=%p pc=%08lx pr=%08lx\n", |
487 | current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); | 484 | current->comm, task_pid_nr(current), frame, regs->pc, regs->pr); |
488 | 485 | ||
489 | flush_cache_sigtramp(regs->pr); | 486 | flush_icache_range(regs->pr, regs->pr + sizeof(frame->retcode)); |
490 | |||
491 | if ((-regs->pr & (L1_CACHE_BYTES-1)) < sizeof(frame->retcode)) | ||
492 | flush_cache_sigtramp(regs->pr + L1_CACHE_BYTES); | ||
493 | 487 | ||
494 | return 0; | 488 | return 0; |
495 | 489 | ||