ARM: 6134/1: Handle instruction cache maintenance fault properly
authorKirill A. Shutemov <kirill@shutemov.name>
Sat, 15 May 2010 08:57:06 +0000 (09:57 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 15 May 2010 14:03:52 +0000 (15:03 +0100)
commit8c0b742ca7a7d21de0ddc87eda6ef0b282e4de18
tree282fc26ab73adf3a611ae50ff67d7abf799589d0
parent49aea0fd95495538230e19f58e217fb06ffdbfeb
ARM: 6134/1: Handle instruction cache maintenance fault properly

Between "clean D line..." and "invalidate I line" operations in
v7_coherent_user_range(), the memory page may get swapped out.
And the fault on "invalidate I line" could not be properly handled
causing the oops.

In ARMv6 "external abort on linefetch" replaced by "instruction cache
maintenance fault". Let's handle it as translation fault. It fixes the
issue.

I'm not sure if it's reasonable to check arch version in run-time.
Let's do it in compile time for now.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/fault.c