diff options
author | Sebastian Andrzej Siewior <sebastian@breakpoint.cc> | 2010-04-27 16:53:30 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2010-04-30 15:52:48 -0400 |
commit | 4f81b01a30ffb338068d611e27da18c08db55464 (patch) | |
tree | d60e6b0f6de80a485a56c21e4b008c8681c88008 /arch/mips/kernel/traps.c | |
parent | 1ec56329ff939aba29291c0dec1a28ceed660162 (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/kernel/traps.c')
-rw-r--r-- | arch/mips/kernel/traps.c | 7 |
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 = | |||
1562 | void __cpuinit set_uncached_handler(unsigned long offset, void *addr, | 1562 | void __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); |