MIPS: R2: Fix broken installation of cache error handler.
authorRalf Baechle <ralf@linux-mips.org>
Wed, 28 Jan 2009 18:48:23 +0000 (18:48 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 30 Jan 2009 21:32:58 +0000 (21:32 +0000)
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/traps.c

index f6083c6bfaa4f3b411b06103a3e48936933ee3b9..fa06460cbf2c7668218a0e16fed9d8c749e44a23 100644 (file)
@@ -1582,7 +1582,11 @@ void __init set_handler(unsigned long offset, void *addr, unsigned long size)
 static char panic_null_cerr[] __cpuinitdata =
        "Trying to set NULL cache error exception handler";
 
-/* Install uncached CPU exception handler */
+/*
+ * Install uncached CPU exception handler.
+ * This is suitable only for the cache error exception which is the only
+ * exception handler that is being run uncached.
+ */
 void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
        unsigned long size)
 {
@@ -1593,7 +1597,7 @@ void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
        unsigned long uncached_ebase = TO_UNCAC(ebase);
 #endif
        if (cpu_has_mips_r2)
-               ebase += (read_c0_ebase() & 0x3ffff000);
+               uncached_ebase += (read_c0_ebase() & 0x3ffff000);
 
        if (!addr)
                panic(panic_null_cerr);