patch-2.4.19 linux-2.4.19/arch/arm/mm/proc-arm920.S
Next file: linux-2.4.19/arch/arm/mm/proc-arm922.S
Previous file: linux-2.4.19/arch/arm/mm/proc-arm720.S
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
Fri Aug 2 17:39:42 2002
- Orig file:
linux-2.4.18/arch/arm/mm/proc-arm920.S
- Orig date:
Thu Oct 25 13:53:46 2001
diff -urN linux-2.4.18/arch/arm/mm/proc-arm920.S linux-2.4.19/arch/arm/mm/proc-arm920.S
@@ -56,22 +56,27 @@
* cpu_arm920_data_abort()
*
* obtain information about current aborted instruction
+ * Note: we read user space. This means we might cause a data
+ * abort here if the I-TLB and D-TLB aren't seeing the same
+ * picture. Unfortunately, this does happen. We live with it.
*
- * r0 = address of aborted instruction
+ * r2 = address of aborted instruction
+ * r3 = cpsr
*
* Returns:
* r0 = address of abort
* r1 != 0 if writing
* r3 = FSR
+ * r4 = corrupted
*/
.align 5
ENTRY(cpu_arm920_data_abort)
- ldr r1, [r0] @ read aborted instruction
+ mrc p15, 0, r3, c5, c0, 0 @ get FSR
mrc p15, 0, r0, c6, c0, 0 @ get FAR
+ ldr r1, [r2] @ read aborted instruction
+ and r3, r3, #255
tst r1, r1, lsr #21 @ C = bit 20
- mrc p15, 0, r3, c5, c0, 0 @ get FSR
sbc r1, r1, r1 @ r1 = C - 1
- and r3, r3, #255
mov pc, lr
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)