diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm64/mm/context.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm64/mm/context.c b/arch/arm64/mm/context.c index baa758d37021..76c1e6cd36fc 100644 --- a/arch/arm64/mm/context.c +++ b/arch/arm64/mm/context.c | |||
@@ -92,6 +92,14 @@ static void reset_context(void *info) | |||
92 | unsigned int cpu = smp_processor_id(); | 92 | unsigned int cpu = smp_processor_id(); |
93 | struct mm_struct *mm = current->active_mm; | 93 | struct mm_struct *mm = current->active_mm; |
94 | 94 | ||
95 | /* | ||
96 | * current->active_mm could be init_mm for the idle thread immediately | ||
97 | * after secondary CPU boot or hotplug. TTBR0_EL1 is already set to | ||
98 | * the reserved value, so no need to reset any context. | ||
99 | */ | ||
100 | if (mm == &init_mm) | ||
101 | return; | ||
102 | |||
95 | smp_rmb(); | 103 | smp_rmb(); |
96 | asid = cpu_last_asid + cpu; | 104 | asid = cpu_last_asid + cpu; |
97 | 105 | ||