Commit 73c50a27 authored by David S. Miller's avatar David S. Miller

[SPARC64]: Document the instruction checks we do in do_sparc64_fault().

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6f25f398
...@@ -327,8 +327,12 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs) ...@@ -327,8 +327,12 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
insn = get_fault_insn(regs, 0); insn = get_fault_insn(regs, 0);
if (!insn) if (!insn)
goto continue_fault; goto continue_fault;
/* All loads, stores and atomics have bits 30 and 31 both set
* in the instruction. Bit 21 is set in all stores, but we
* have to avoid prefetches which also have bit 21 set.
*/
if ((insn & 0xc0200000) == 0xc0200000 && if ((insn & 0xc0200000) == 0xc0200000 &&
(insn & 0x1780000) != 0x1680000) { (insn & 0x01780000) != 0x01680000) {
/* Don't bother updating thread struct value, /* Don't bother updating thread struct value,
* because update_mmu_cache only cares which tlb * because update_mmu_cache only cares which tlb
* the access came from. * the access came from.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment