[MIPS] RM9000: Fix buggy I-cache workaround.
authorThomas Koeller <thomas.koeller@baslerweb.com>
Fri, 10 Feb 2006 16:36:27 +0000 (17:36 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 14 Feb 2006 19:13:25 +0000 (19:13 +0000)
Signed-off-by: Thomas Koeller <thomas.koeller@baslerweb.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/signal-common.h

index 0fbc492d24b4a50f97bf2249e2e0905f171ab4e3..36bfc2588aa351cb1776edfe14a9663f11f972ba 100644 (file)
@@ -176,7 +176,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size)
        if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags (sp) == 0))
                sp = current->sas_ss_sp + current->sas_ss_size;
 
-       return (void __user *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ? 32 : ALMASK));
+       return (void __user *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ? ~(cpu_icache_line_size()-1) : ALMASK));
 }
 
 static inline int install_sigtramp(unsigned int __user *tramp,