aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/kernel/traps.c2
-rw-r--r--arch/mips/mm/c-octeon.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 8119ac2fdfc9..d57fc10df773 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -712,10 +712,12 @@ int process_fpemu_return(int sig, void __user *fault_addr)
712 si.si_addr = fault_addr; 712 si.si_addr = fault_addr;
713 si.si_signo = sig; 713 si.si_signo = sig;
714 if (sig == SIGSEGV) { 714 if (sig == SIGSEGV) {
715 down_read(&current->mm->mmap_sem);
715 if (find_vma(current->mm, (unsigned long)fault_addr)) 716 if (find_vma(current->mm, (unsigned long)fault_addr))
716 si.si_code = SEGV_ACCERR; 717 si.si_code = SEGV_ACCERR;
717 else 718 else
718 si.si_code = SEGV_MAPERR; 719 si.si_code = SEGV_MAPERR;
720 up_read(&current->mm->mmap_sem);
719 } else { 721 } else {
720 si.si_code = BUS_ADRERR; 722 si.si_code = BUS_ADRERR;
721 } 723 }
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c
index f41a5c5b0865..05b1d7cf9514 100644
--- a/arch/mips/mm/c-octeon.c
+++ b/arch/mips/mm/c-octeon.c
@@ -137,8 +137,10 @@ static void octeon_flush_cache_sigtramp(unsigned long addr)
137{ 137{
138 struct vm_area_struct *vma; 138 struct vm_area_struct *vma;
139 139
140 down_read(&current->mm->mmap_sem);
140 vma = find_vma(current->mm, addr); 141 vma = find_vma(current->mm, addr);
141 octeon_flush_icache_all_cores(vma); 142 octeon_flush_icache_all_cores(vma);
143 up_read(&current->mm->mmap_sem);
142} 144}
143 145
144 146