[PARISC] Add sync required after fdc to enforce insn ordering
authorGrant Grundler <grundler@parisc-linux.org>
Sat, 22 Oct 2005 02:47:40 +0000 (22:47 -0400)
committerKyle McMartin <kyle@parisc-linux.org>
Sat, 22 Oct 2005 02:47:40 +0000 (22:47 -0400)
PA20 arch book (page 7-52 and 7-55) indicate a "sync" is required after
the FDC "to enforce instruction ordering". And we want to make
sure FIC is executed after FDC has retired.

Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
arch/parisc/kernel/signal.c

index 0224651fd8f1547e298ab6669ae26f6bebb3cc79..6c905c128c2a20b884d4109f39b7729cbb6f229d 100644 (file)
@@ -636,6 +636,7 @@ do_signal(sigset_t *oldset, struct pt_regs *regs, int in_syscall)
                        /* Stack is 64-byte aligned, and we only 
                         * need to flush 1 cache line */
                        asm("fdc 0(%%sr3, %0)\n"
                        /* Stack is 64-byte aligned, and we only 
                         * need to flush 1 cache line */
                        asm("fdc 0(%%sr3, %0)\n"
+                           "sync\n"
                            "fic 0(%%sr3, %0)\n"
                            "sync\n"
                            : : "r"(regs->gr[30]));
                            "fic 0(%%sr3, %0)\n"
                            "sync\n"
                            : : "r"(regs->gr[30]));