aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <sebastian@breakpoint.cc>2010-04-27 16:53:30 -0400
committerRalf Baechle <ralf@linux-mips.org>2010-04-30 15:52:48 -0400
commit4f81b01a30ffb338068d611e27da18c08db55464 (patch)
treed60e6b0f6de80a485a56c21e4b008c8681c88008 /arch/mips
parent1ec56329ff939aba29291c0dec1a28ceed660162 (diff)
MIPS: Use CKSEG1ADDR for uncached handler
"MIPS: Calculate proper ebase value for 64-bit kernels" 9af43ea080dd5d6c7b34f38261780e5dd43537bc (lmo) rsp. f6be75d03c8870be91e6e2a195648ece04b6bb16 (kernel.org) broke some 64-bit MIPS systems. Before this we were using XKPHYS/cached as ebase and computed the uncached xphsys/unchached address for that area. After that commit ebase became a 32-bit compat address and convert does not work anymore. We now should use CKSEG1 for this. CKSEG1ADDR does just that in 32-bit and 64-bit. Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> To: Ralf Baechle <ralf@linux-mips.org> Patchwork: http://patchwork.linux-mips.org/patch/1149/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/kernel/traps.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 36460c7b7cc8..d612c6dcb746 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1562,12 +1562,7 @@ static char panic_null_cerr[] __cpuinitdata =
1562void __cpuinit set_uncached_handler(unsigned long offset, void *addr, 1562void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1563 unsigned long size) 1563 unsigned long size)
1564{ 1564{
1565#ifdef CONFIG_32BIT 1565 unsigned long uncached_ebase = CKSEG1ADDR(ebase);
1566 unsigned long uncached_ebase = KSEG1ADDR(ebase);
1567#endif
1568#ifdef CONFIG_64BIT
1569 unsigned long uncached_ebase = TO_UNCAC(ebase);
1570#endif
1571 1566
1572 if (!addr) 1567 if (!addr)
1573 panic(panic_null_cerr); 1568 panic(panic_null_cerr);