summaryrefslogtreecommitdiff
path: root/arch/arm/kernel/entry-armv.S
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill@shutemov.name>2009-09-25 13:40:49 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-10-02 22:34:32 +0100
commitd25ef8b86e6a58f5476bf6e4a8da730b335f68fa (patch)
tree2d7773ed145ace0f93d7a11ee9f738a4df4be14f /arch/arm/kernel/entry-armv.S
parent4fb2847437d871fe579f820ceb18031db3359901 (diff)
downloadlinux-3.10-d25ef8b86e6a58f5476bf6e4a8da730b335f68fa.tar.gz
linux-3.10-d25ef8b86e6a58f5476bf6e4a8da730b335f68fa.tar.bz2
linux-3.10-d25ef8b86e6a58f5476bf6e4a8da730b335f68fa.zip
ARM: 5728/1: Proper prefetch abort handling on ARMv6 and ARMv7
Currently, on ARMv6 and ARMv7, if an application tries to execute code (or garbage) on non-executable page it hangs. It caused by incorrect prefetch abort handling. Now every prefetch abort processes as a translation fault. To fix this we have to analyze instruction fault status register to figure out reason why we've got the abort and process it accordingly. To make IFSR different from DFSR we set bit 31 which is reserved in both IFSR and DFSR. This patch also tries to protect from future hangs on unexpected exceptions. An application will be killed if unexpected exception type was received. Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
0 files changed, 0 insertions, 0 deletions