]> err.no Git - linux-2.6/commitdiff
[SPARC64]: Document the instruction checks we do in do_sparc64_fault().
authorDavid S. Miller <davem@sunset.davemloft.net>
Tue, 28 Mar 2006 21:32:24 +0000 (13:32 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sat, 1 Apr 2006 07:03:35 +0000 (23:03 -0800)
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/mm/fault.c

index 0db2f7d9fab50ff57ff5d7125ed731afdbf5f445..6e002aacb961832113ba30d522d437460ee20612 100644 (file)
@@ -327,8 +327,12 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
                insn = get_fault_insn(regs, 0);
                if (!insn)
                        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 &&
-                   (insn & 0x1780000) != 0x1680000) {
+                   (insn & 0x01780000) != 0x01680000) {
                        /* Don't bother updating thread struct value,
                         * because update_mmu_cache only cares which tlb
                         * the access came from.