linux-mips
[Top] [All Lists]

[PATCH v2 3/5] MIPS: Octeon: Use board_cache_error_setup for cache error

To: linux-mips@linux-mips.org, ralf@linux-mips.org
Subject: [PATCH v2 3/5] MIPS: Octeon: Use board_cache_error_setup for cache error handler setup.
From: David Daney <ddaney.cavm@gmail.com>
Date: Mon, 14 May 2012 17:04:48 -0700
Cc: David Daney <david.daney@cavium.com>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=wZ+r606Caxx+x6PtXzR3EjM5YYCCY5w6nSrlY95OrOI=; b=LhMg2Ezd31v8n2bpbtXYhLM1AB1VRJH+aQG1GN5Qji0tKr4CQR55zk2w452vzy/WGu winSnGlsZ8MLQlDyDWqk45yvIx1ak0NjQy68HAtEq0GpKOk5ABDp5mZc1eXkreELoHr9 y3C+cR3PNU8SwCelY8v3Ahv6Gk5tN36Ar9/a2qH5bNA4c8/tJVkQEjJ2Rf4XQmvwDmdA JCsiLJLTEDg75SB3iB+tSGAv5abCPdr4ET7hWkdbOVIvg8tXJMFuvHFKLu6nDty4wXw4 ags7ZPtn1sUXItn1iVmZb+M/gE/DekmumM1UXPYnCyuyCNUcGN1H29b3AjPPTNKvdnlv hKmA==
In-reply-to: <1337040290-16015-1-git-send-email-ddaney.cavm@gmail.com>
References: <1337040290-16015-1-git-send-email-ddaney.cavm@gmail.com>
Sender: linux-mips-bounce@linux-mips.org
From: David Daney <david.daney@cavium.com>

Signed-off-by: David Daney <david.daney@cavium.com>
---
 arch/mips/mm/c-octeon.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c
index 47037ec..44e69e7 100644
--- a/arch/mips/mm/c-octeon.c
+++ b/arch/mips/mm/c-octeon.c
@@ -21,6 +21,7 @@
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/r4kcache.h>
+#include <asm/traps.h>
 #include <asm/mmu_context.h>
 #include <asm/war.h>
 
@@ -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;
 }
 
 /**
-- 
1.7.2.3


<Prev in Thread] Current Thread [Next in Thread>