scw
336806eb55
Overhaul arm32's abort handlers:
- Assume a permission fault is always the result of an attempted write, so no need to disassemble the opcode. (as discussed with Richard Earnshaw/Jason Thorpe a week or two ago) - Split out non-MMU data aborts into separate functions, and deal correctly with XScale imprecise aborts. Specifically, the old code made no attempt to handle the double abort faults which can occur as a result of two consecutive external (imprecise) aborts. This was easy to provoke by read(2)ing from a /dev/mem offset which caused an external abort. With the old code, this would bring the system down instantly, with little clue as to why. (hint: tf_spsr held PSR_ABT32_MODE...) - Re-write badaddr_read() to use pcb_onfault instead of adding extra overhead to data_abort_handler(). A side effect of this is that it now benefits from the XScale double abort recovery. - Invoke the cpu-specific prefetch/data abort fixup routines only if the host cpu actually needs it. On other cpus, the code is optimised away. - Sprinkle __predict_{false,true} in all the right places. - G/C some excess debugging baggage.
…
…
…
…
…
…
…
…
…
…
…
…
Description
No description provided
Languages
C
85.3%
Roff
7.2%
Assembly
3.1%
Shell
1.7%
Makefile
1.2%
Other
0.9%