[MIPS] MT: Improved multithreading support.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
@@ -157,7 +157,6 @@ no_context:
|
||||
* Oops. The kernel tried to access some bad page. We'll have to
|
||||
* terminate things with extreme prejudice.
|
||||
*/
|
||||
|
||||
bust_spinlocks(1);
|
||||
|
||||
printk(KERN_ALERT "CPU %d Unable to handle kernel paging request at "
|
||||
@@ -188,11 +187,20 @@ do_sigbus:
|
||||
/* Kernel mode? Handle exceptions or die */
|
||||
if (!user_mode(regs))
|
||||
goto no_context;
|
||||
|
||||
else
|
||||
/*
|
||||
* Send a sigbus, regardless of whether we were in kernel
|
||||
* or user mode.
|
||||
*/
|
||||
#if 0
|
||||
printk("do_page_fault() #3: sending SIGBUS to %s for "
|
||||
"invalid %s\n%0*lx (epc == %0*lx, ra == %0*lx)\n",
|
||||
tsk->comm,
|
||||
write ? "write access to" : "read access from",
|
||||
field, address,
|
||||
field, (unsigned long) regs->cp0_epc,
|
||||
field, (unsigned long) regs->regs[31]);
|
||||
#endif
|
||||
tsk->thread.cp0_badvaddr = address;
|
||||
info.si_signo = SIGBUS;
|
||||
info.si_errno = 0;
|
||||
@@ -201,7 +209,6 @@ do_sigbus:
|
||||
force_sig_info(SIGBUS, &info, tsk);
|
||||
|
||||
return;
|
||||
|
||||
vmalloc_fault:
|
||||
{
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user