diff options
Diffstat (limited to 'recipes/linux/linux-2.6.28/stb225/ebase-fix.patch')
-rw-r--r-- | recipes/linux/linux-2.6.28/stb225/ebase-fix.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.28/stb225/ebase-fix.patch b/recipes/linux/linux-2.6.28/stb225/ebase-fix.patch new file mode 100644 index 0000000000..bdd82ac1d5 --- /dev/null +++ b/recipes/linux/linux-2.6.28/stb225/ebase-fix.patch @@ -0,0 +1,37 @@ +diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c +index f6083c6..b3bcd3a 100644 +--- a/arch/mips/kernel/traps.c ++++ b/arch/mips/kernel/traps.c +@@ -1592,8 +1592,6 @@ void __cpuinit set_uncached_handler(unsigned long offset, void *addr, + #ifdef CONFIG_64BIT + unsigned long uncached_ebase = TO_UNCAC(ebase); + #endif +- if (cpu_has_mips_r2) +- ebase += (read_c0_ebase() & 0x3ffff000); + + if (!addr) + panic(panic_null_cerr); +@@ -1629,8 +1627,6 @@ void __init trap_init(void) + ebase = (unsigned long) alloc_bootmem_low_pages(0x200 + VECTORSPACING*64); + else { + ebase = CAC_BASE; +- if (cpu_has_mips_r2) +- ebase += (read_c0_ebase() & 0x3ffff000); + } + + per_cpu_trap_init(); +@@ -1739,11 +1735,11 @@ void __init trap_init(void) + + if (cpu_has_vce) + /* Special exception: R4[04]00 uses also the divec space. */ +- memcpy((void *)(ebase + 0x180), &except_vec3_r4000, 0x100); ++ memcpy((void *)(CAC_BASE + 0x180), &except_vec3_r4000, 0x100); + else if (cpu_has_4kex) +- memcpy((void *)(ebase + 0x180), &except_vec3_generic, 0x80); ++ memcpy((void *)(CAC_BASE + 0x180), &except_vec3_generic, 0x80); + else +- memcpy((void *)(ebase + 0x080), &except_vec3_generic, 0x80); ++ memcpy((void *)(CAC_BASE + 0x080), &except_vec3_generic, 0x80); + + signal_init(); + #ifdef CONFIG_MIPS32_COMPAT |