ARM: 7661/1: mm: perform explicit branch predictor maintenance when required
authorWill Deacon <will.deacon@arm.com>
Thu, 28 Feb 2013 16:48:40 +0000 (17:48 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 3 Mar 2013 22:54:16 +0000 (22:54 +0000)
commit89c7e4b8bbb3d4fa52df5746a8ad38e610143651
treef6d3d835f5fca88fd4de01f166d782f16c2fe3c9
parent862c588f062fe9339a180cf6429e4df1855c376a
ARM: 7661/1: mm: perform explicit branch predictor maintenance when required

The ARM ARM requires branch predictor maintenance if, for a given ASID,
the instructions at a specific virtual address appear to change.

From the kernel's point of view, that means:

- Changing the kernel's view of memory (e.g. switching to the
  identity map)
- ASID rollover (since ASIDs will be re-allocated to new tasks)

This patch adds explicit branch predictor maintenance when either of the
two conditions above are met.

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/kernel/smp.c
arch/arm/kernel/suspend.c
arch/arm/mm/context.c
arch/arm/mm/idmap.c