diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2014-06-04 16:53:02 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-06-04 16:53:02 -0400 |
commit | f8647b506d7116a1a3accd8d618184096e85f50b (patch) | |
tree | f10bc7201fda2a36c035548a0ea62210ad57adb6 /arch/mips/kernel/traps.c | |
parent | 1d421ca9d7edbac1eb118631ee039d50ab54771e (diff) | |
parent | f7a89f1b8eb598ac5da61c9795b3d847baa73d12 (diff) |
Merge branch '3.15-fixes' into mips-for-linux-next
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r-- | arch/mips/kernel/traps.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 1fd1a0c4f104..51706d6dd5b0 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -704,10 +704,12 @@ int process_fpemu_return(int sig, void __user *fault_addr) | |||
704 | si.si_addr = fault_addr; | 704 | si.si_addr = fault_addr; |
705 | si.si_signo = sig; | 705 | si.si_signo = sig; |
706 | if (sig == SIGSEGV) { | 706 | if (sig == SIGSEGV) { |
707 | down_read(¤t->mm->mmap_sem); | ||
707 | if (find_vma(current->mm, (unsigned long)fault_addr)) | 708 | if (find_vma(current->mm, (unsigned long)fault_addr)) |
708 | si.si_code = SEGV_ACCERR; | 709 | si.si_code = SEGV_ACCERR; |
709 | else | 710 | else |
710 | si.si_code = SEGV_MAPERR; | 711 | si.si_code = SEGV_MAPERR; |
712 | up_read(¤t->mm->mmap_sem); | ||
711 | } else { | 713 | } else { |
712 | si.si_code = BUS_ADRERR; | 714 | si.si_code = BUS_ADRERR; |
713 | } | 715 | } |
@@ -1537,7 +1539,7 @@ asmlinkage void cache_parity_error(void) | |||
1537 | reg_val & (1<<30) ? "secondary" : "primary", | 1539 | reg_val & (1<<30) ? "secondary" : "primary", |
1538 | reg_val & (1<<31) ? "data" : "insn"); | 1540 | reg_val & (1<<31) ? "data" : "insn"); |
1539 | if (cpu_has_mips_r2 && | 1541 | if (cpu_has_mips_r2 && |
1540 | ((current_cpu_data.processor_id && 0xff0000) == PRID_COMP_MIPS)) { | 1542 | ((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) { |
1541 | pr_err("Error bits: %s%s%s%s%s%s%s%s\n", | 1543 | pr_err("Error bits: %s%s%s%s%s%s%s%s\n", |
1542 | reg_val & (1<<29) ? "ED " : "", | 1544 | reg_val & (1<<29) ? "ED " : "", |
1543 | reg_val & (1<<28) ? "ET " : "", | 1545 | reg_val & (1<<28) ? "ET " : "", |
@@ -1577,7 +1579,7 @@ asmlinkage void do_ftlb(void) | |||
1577 | 1579 | ||
1578 | /* For the moment, report the problem and hang. */ | 1580 | /* For the moment, report the problem and hang. */ |
1579 | if (cpu_has_mips_r2 && | 1581 | if (cpu_has_mips_r2 && |
1580 | ((current_cpu_data.processor_id && 0xff0000) == PRID_COMP_MIPS)) { | 1582 | ((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) { |
1581 | pr_err("FTLB error exception, cp0_ecc=0x%08x:\n", | 1583 | pr_err("FTLB error exception, cp0_ecc=0x%08x:\n", |
1582 | read_c0_ecc()); | 1584 | read_c0_ecc()); |
1583 | pr_err("cp0_errorepc == %0*lx\n", field, read_c0_errorepc()); | 1585 | pr_err("cp0_errorepc == %0*lx\n", field, read_c0_errorepc()); |