From: Jan Kiszka <[email protected]> This is only called during early init, e.g. for switching alternatives. Still, switch_mm_irqs_off would complain without this, and we are better safe than sorry.
Signed-off-by: Jan Kiszka <[email protected]> --- 4.19 is not affected. Dovetail solves this differently, via local_irq_save_full which is not available in I-pipe and not worth to introduce for this purpose. arch/x86/include/asm/mmu_context.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h index 0d9dd08c2122..2b4afca4e15f 100644 --- a/arch/x86/include/asm/mmu_context.h +++ b/arch/x86/include/asm/mmu_context.h @@ -383,6 +383,7 @@ static inline temp_mm_state_t use_temporary_mm(struct mm_struct *mm) temp_mm_state_t temp_state; lockdep_assert_irqs_disabled(); + hard_cond_local_irq_disable(); temp_state.mm = this_cpu_read(cpu_tlbstate.loaded_mm); switch_mm_irqs_off(NULL, mm, current); @@ -407,6 +408,7 @@ static inline void unuse_temporary_mm(temp_mm_state_t prev_state) { lockdep_assert_irqs_disabled(); switch_mm_irqs_off(NULL, prev_state.mm, current); + hard_cond_local_irq_enable(); /* * Restore the breakpoints if they were disabled before the temporary mm -- 2.26.2
