On Tue, 2010-04-27 at 22:53 +0200, Sebastian Andrzej Siewior wrote: > since "MIPS: Calculate proper ebase value for 64-bit kernels" my mips > toy did not boot anymore. > Before that commit we always touched xkphys/shared as ebase and computed > xphsys/unchached for that area. After that commit ebase become 32bit > compat address and convert does not work anymore. So I guess now want to > touch the 32bit compat unmapped & uncached area for this. CKSEG1ADDR > does just in 32bit and 64bit. > Just tested it in 32bit and 64bit kernel on my YeeLoong netbook, both of them work well. BTW: there is another patch[1] sent to this mailing list Yesterday, differ from your method, it tries to provide a TO_UNCAC() for 32bit kernel, but seems yours is lighter. [1] http://patchwork.linux-mips.org/project/linux-mips/list/ [1/2] MIPS: Fixup and cleanup of TO_PHYS(), TO_CAC(), TO_UNCAC() http://patchwork.linux-mips.org/patch/1146/ [2/2] MIPS: Cleanup of set_uncached_handler() http://patchwork.linux-mips.org/patch/1147/ Regards, Wu Zhangjin > Signed-off-by: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> > --- > 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 4e00f9b..1b57f18 100644 > --- a/arch/mips/kernel/traps.c > +++ b/arch/mips/kernel/traps.c > @@ -1557,12 +1557,7 @@ static char panic_null_cerr[] __cpuinitdata = > void __cpuinit set_uncached_handler(unsigned long offset, void *addr, > unsigned long size) > { > -#ifdef CONFIG_32BIT > - unsigned long uncached_ebase = KSEG1ADDR(ebase); > -#endif > -#ifdef CONFIG_64BIT > - unsigned long uncached_ebase = TO_UNCAC(ebase); > -#endif > + unsigned long uncached_ebase = CKSEG1ADDR(ebase); > > if (!addr) > panic(panic_null_cerr);