The code to work around the RM9000 icache problems is wrong and
ineffective. The patch below fixes that.
Signed-off-by: Thomas Koeller <thomas.koeller@baslerweb.com>
--- linux.git/arch/mips/kernel/signal-common.h 2005-11-02 13:21:29.000000000
+0100
+++ linux-2.6.14-5/arch/mips/kernel/signal-common.h 2006-02-10
12:48:50.000000000 +0100
@@ -176,7 +176,7 @@
if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags (sp) == 0))
sp = current->sas_ss_sp + current->sas_ss_size;
- return (void *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ? 32
: ALMASK));
+ return (void *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ?
~(cpu_icache_line_size()-1) : ALMASK));
}
static inline int install_sigtramp(unsigned int __user *tramp,
--
--------------------------------------------------
Thomas Koeller, Software Development
Basler Vision Technologies
thomas dot koeller at baslerweb dot com
http://www.baslerweb.com
==============================
|