diff options
Diffstat (limited to 'arch/mips/mm/fault.c')
| -rw-r--r-- | arch/mips/mm/fault.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index 2d9624fd10ec..e3a617224868 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c | |||
| @@ -157,7 +157,6 @@ no_context: | |||
| 157 | * Oops. The kernel tried to access some bad page. We'll have to | 157 | * Oops. The kernel tried to access some bad page. We'll have to |
| 158 | * terminate things with extreme prejudice. | 158 | * terminate things with extreme prejudice. |
| 159 | */ | 159 | */ |
| 160 | |||
| 161 | bust_spinlocks(1); | 160 | bust_spinlocks(1); |
| 162 | 161 | ||
| 163 | printk(KERN_ALERT "CPU %d Unable to handle kernel paging request at " | 162 | printk(KERN_ALERT "CPU %d Unable to handle kernel paging request at " |
| @@ -188,11 +187,20 @@ do_sigbus: | |||
| 188 | /* Kernel mode? Handle exceptions or die */ | 187 | /* Kernel mode? Handle exceptions or die */ |
| 189 | if (!user_mode(regs)) | 188 | if (!user_mode(regs)) |
| 190 | goto no_context; | 189 | goto no_context; |
| 191 | 190 | else | |
| 192 | /* | 191 | /* |
| 193 | * Send a sigbus, regardless of whether we were in kernel | 192 | * Send a sigbus, regardless of whether we were in kernel |
| 194 | * or user mode. | 193 | * or user mode. |
| 195 | */ | 194 | */ |
| 195 | #if 0 | ||
| 196 | printk("do_page_fault() #3: sending SIGBUS to %s for " | ||
| 197 | "invalid %s\n%0*lx (epc == %0*lx, ra == %0*lx)\n", | ||
| 198 | tsk->comm, | ||
| 199 | write ? "write access to" : "read access from", | ||
| 200 | field, address, | ||
| 201 | field, (unsigned long) regs->cp0_epc, | ||
| 202 | field, (unsigned long) regs->regs[31]); | ||
| 203 | #endif | ||
| 196 | tsk->thread.cp0_badvaddr = address; | 204 | tsk->thread.cp0_badvaddr = address; |
| 197 | info.si_signo = SIGBUS; | 205 | info.si_signo = SIGBUS; |
| 198 | info.si_errno = 0; | 206 | info.si_errno = 0; |
| @@ -201,7 +209,6 @@ do_sigbus: | |||
| 201 | force_sig_info(SIGBUS, &info, tsk); | 209 | force_sig_info(SIGBUS, &info, tsk); |
| 202 | 210 | ||
| 203 | return; | 211 | return; |
| 204 | |||
| 205 | vmalloc_fault: | 212 | vmalloc_fault: |
| 206 | { | 213 | { |
| 207 | /* | 214 | /* |
