aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/mm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/mm')
-rw-r--r--arch/sparc64/mm/fault.c14
-rw-r--r--arch/sparc64/mm/init.c3
2 files changed, 5 insertions, 12 deletions
diff --git a/arch/sparc64/mm/fault.c b/arch/sparc64/mm/fault.c
index e2027f27c0fe..2650d0d33ac2 100644
--- a/arch/sparc64/mm/fault.c
+++ b/arch/sparc64/mm/fault.c
@@ -244,16 +244,8 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code,
244 if (regs->tstate & TSTATE_PRIV) { 244 if (regs->tstate & TSTATE_PRIV) {
245 const struct exception_table_entry *entry; 245 const struct exception_table_entry *entry;
246 246
247 if (asi == ASI_P && (insn & 0xc0800000) == 0xc0800000) { 247 entry = search_exception_tables(regs->tpc);
248 if (insn & 0x2000) 248 if (entry) {
249 asi = (regs->tstate >> 24);
250 else
251 asi = (insn >> 5);
252 }
253
254 /* Look in asi.h: All _S asis have LS bit set */
255 if ((asi & 0x1) &&
256 (entry = search_exception_tables(regs->tpc))) {
257 regs->tpc = entry->fixup; 249 regs->tpc = entry->fixup;
258 regs->tnpc = regs->tpc + 4; 250 regs->tnpc = regs->tpc + 4;
259 return; 251 return;
@@ -294,7 +286,7 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
294 unsigned long tpc = regs->tpc; 286 unsigned long tpc = regs->tpc;
295 287
296 /* Sanity check the PC. */ 288 /* Sanity check the PC. */
297 if ((tpc >= KERNBASE && tpc < (unsigned long) _etext) || 289 if ((tpc >= KERNBASE && tpc < (unsigned long) __init_end) ||
298 (tpc >= MODULES_VADDR && tpc < MODULES_END)) { 290 (tpc >= MODULES_VADDR && tpc < MODULES_END)) {
299 /* Valid, no problems... */ 291 /* Valid, no problems... */
300 } else { 292 } else {
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 9e6bca266d88..b5c30416fdac 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -1010,7 +1010,8 @@ static struct linux_prom64_registers pall[MAX_BANKS] __initdata;
1010static int pall_ents __initdata; 1010static int pall_ents __initdata;
1011 1011
1012#ifdef CONFIG_DEBUG_PAGEALLOC 1012#ifdef CONFIG_DEBUG_PAGEALLOC
1013static unsigned long kernel_map_range(unsigned long pstart, unsigned long pend, pgprot_t prot) 1013static unsigned long __ref kernel_map_range(unsigned long pstart,
1014 unsigned long pend, pgprot_t prot)
1014{ 1015{
1015 unsigned long vstart = PAGE_OFFSET + pstart; 1016 unsigned long vstart = PAGE_OFFSET + pstart;
1016 unsigned long vend = PAGE_OFFSET + pend; 1017 unsigned long vend = PAGE_OFFSET + pend;