ARM: 7691/1: mm: kill unused TLB_CAN_READ_FROM_L1_CACHE and use ALT_SMP instead
authorWill Deacon <will.deacon@arm.com>
Wed, 3 Apr 2013 16:16:57 +0000 (17:16 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 3 Apr 2013 16:39:07 +0000 (17:39 +0100)
commitae8a8b9553bd3906af74ff4e8d763904d20ab4e5
tree85406316a071f016d2cfcb79b4f9ef686cfa011b
parentb00884802043d9102ecc2abfdc37a7b35b30e52a
ARM: 7691/1: mm: kill unused TLB_CAN_READ_FROM_L1_CACHE and use ALT_SMP instead

Many ARMv7 cores have hardware page table walkers that can read the L1
cache. This is discoverable from the ID_MMFR3 register, although this
can be expensive to access from the low-level set_pte functions and is a
pain to cache, particularly with multi-cluster systems.

A useful observation is that the multi-processing extensions for ARMv7
require coherent table walks, meaning that we can make use of ALT_SMP
patching in proc-v7-* to patch away the cache flush safely for these
cores.

Reported-by: Albin Tonnerre <Albin.Tonnerre@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/tlbflush.h
arch/arm/mm/proc-v6.S
arch/arm/mm/proc-v7-2level.S
arch/arm/mm/proc-v7-3level.S
arch/arm/mm/proc-v7.S