aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc/kernel/signal.c')
-rw-r--r--arch/parisc/kernel/signal.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c
index befdfe700616..82c24e62ab63 100644
--- a/arch/parisc/kernel/signal.c
+++ b/arch/parisc/kernel/signal.c
@@ -625,11 +625,14 @@ do_signal(sigset_t *oldset, struct pt_regs *regs, int in_syscall)
625 put_user(0xe0008200, &usp[3]); 625 put_user(0xe0008200, &usp[3]);
626 put_user(0x34140000, &usp[4]); 626 put_user(0x34140000, &usp[4]);
627 627
628 /* Stack is 64-byte aligned, and we only 628 /* Stack is 64-byte aligned, and we only need
629 * need to flush 1 cache line */ 629 * to flush 1 cache line.
630 asm("fdc 0(%%sr3, %0)\n" 630 * Flushing one cacheline is cheap.
631 * "sync" on bigger (> 4 way) boxes is not.
632 */
633 asm("fdc %%r0(%%sr3, %0)\n"
631 "sync\n" 634 "sync\n"
632 "fic 0(%%sr3, %0)\n" 635 "fic %%r0(%%sr3, %0)\n"
633 "sync\n" 636 "sync\n"
634 : : "r"(regs->gr[30])); 637 : : "r"(regs->gr[30]));
635 638