diff options
-rw-r--r-- | arch/arm/kernel/swp_emulate.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/kernel/swp_emulate.c b/arch/arm/kernel/swp_emulate.c index df745188f5de..ab1017bd1667 100644 --- a/arch/arm/kernel/swp_emulate.c +++ b/arch/arm/kernel/swp_emulate.c | |||
@@ -109,10 +109,12 @@ static void set_segfault(struct pt_regs *regs, unsigned long addr) | |||
109 | { | 109 | { |
110 | siginfo_t info; | 110 | siginfo_t info; |
111 | 111 | ||
112 | down_read(¤t->mm->mmap_sem); | ||
112 | if (find_vma(current->mm, addr) == NULL) | 113 | if (find_vma(current->mm, addr) == NULL) |
113 | info.si_code = SEGV_MAPERR; | 114 | info.si_code = SEGV_MAPERR; |
114 | else | 115 | else |
115 | info.si_code = SEGV_ACCERR; | 116 | info.si_code = SEGV_ACCERR; |
117 | up_read(¤t->mm->mmap_sem); | ||
116 | 118 | ||
117 | info.si_signo = SIGSEGV; | 119 | info.si_signo = SIGSEGV; |
118 | info.si_errno = 0; | 120 | info.si_errno = 0; |