diff options
Diffstat (limited to 'arch/arm/mm/context.c')
| -rw-r--r-- | arch/arm/mm/context.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c index 9da43a0fdcdf..c9e9a5586267 100644 --- a/arch/arm/mm/context.c +++ b/arch/arm/mm/context.c | |||
| @@ -47,6 +47,13 @@ void __new_context(struct mm_struct *mm) | |||
| 47 | : "r" (0)); | 47 | : "r" (0)); |
| 48 | isb(); | 48 | isb(); |
| 49 | flush_tlb_all(); | 49 | flush_tlb_all(); |
| 50 | if (icache_is_vivt_asid_tagged()) { | ||
| 51 | asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n" | ||
| 52 | "mcr p15, 0, %0, c7, c5, 6 @ flush BTAC/BTB\n" | ||
| 53 | : | ||
| 54 | : "r" (0)); | ||
| 55 | dsb(); | ||
| 56 | } | ||
| 50 | } | 57 | } |
| 51 | 58 | ||
| 52 | mm->context.id = asid; | 59 | mm->context.id = asid; |
