From 43b681f51ab1f483a488ee53f7dc8f98c18138a5 Mon Sep 17 00:00:00 2001 From: David Daney Date: Tue, 15 May 2012 00:04:48 -0700 Subject: [PATCH] --- yaml --- r: 309022 b: refs/heads/master c: 586016ebf76d62e58a0e9dfd971e465c8027889d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/mips/mm/c-octeon.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 43dfd30aafaa..a2b0590d455b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e3dc81f2306e650f01e38ec87e24c3fecb843dc3 +refs/heads/master: 586016ebf76d62e58a0e9dfd971e465c8027889d diff --git a/trunk/arch/mips/mm/c-octeon.c b/trunk/arch/mips/mm/c-octeon.c index 47037ec5589b..44e69e7a4519 100644 --- a/trunk/arch/mips/mm/c-octeon.c +++ b/trunk/arch/mips/mm/c-octeon.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -248,6 +249,11 @@ static void __cpuinit probe_octeon(void) } } +static void __cpuinit octeon_cache_error_setup(void) +{ + extern char except_vec2_octeon; + set_handler(0x100, &except_vec2_octeon, 0x80); +} /** * Setup the Octeon cache flush routines @@ -255,12 +261,6 @@ static void __cpuinit probe_octeon(void) */ void __cpuinit octeon_cache_init(void) { - extern unsigned long ebase; - extern char except_vec2_octeon; - - memcpy((void *)(ebase + 0x100), &except_vec2_octeon, 0x80); - octeon_flush_cache_sigtramp(ebase + 0x100); - probe_octeon(); shm_align_mask = PAGE_SIZE - 1; @@ -280,6 +280,8 @@ void __cpuinit octeon_cache_init(void) build_clear_page(); build_copy_page(); + + board_cache_error_setup = octeon_cache_error_setup; } /**