mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
[SPARC64]: Loosen checks in exception table handling.
Some parts of the kernel now do things like do *_user() accesses while
set_fs(KERNEL_DS) that fault on purpose.
See, for example, the code added by changeset
a0c1e9073e
("futex: runtime enable pi
and robust functionality").
That trips up the ASI sanity checking we make in do_kernel_fault().
Just remove it for now. Maybe we can add it back later with an added
conditional which looks at the current get_fs() value.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
896aef430e
commit
622eaec613
@ -244,16 +244,8 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code,
|
||||
if (regs->tstate & TSTATE_PRIV) {
|
||||
const struct exception_table_entry *entry;
|
||||
|
||||
if (asi == ASI_P && (insn & 0xc0800000) == 0xc0800000) {
|
||||
if (insn & 0x2000)
|
||||
asi = (regs->tstate >> 24);
|
||||
else
|
||||
asi = (insn >> 5);
|
||||
}
|
||||
|
||||
/* Look in asi.h: All _S asis have LS bit set */
|
||||
if ((asi & 0x1) &&
|
||||
(entry = search_exception_tables(regs->tpc))) {
|
||||
entry = search_exception_tables(regs->tpc);
|
||||
if (entry) {
|
||||
regs->tpc = entry->fixup;
|
||||
regs->tnpc = regs->tpc + 4;
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user