On Wed, Oct 26, 2022 at 7:49 AM Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > > lru_gen_add_mm() has been added within an IRQ-off region in the commit > mentioned below. The other invocations of lru_gen_add_mm() are not within > an IRQ-off region. > The invocation within IRQ-off region is problematic on PREEMPT_RT > because the function is using a spin_lock_t which must not be used > within IRQ-disabled regions. > > The other invocations of lru_gen_add_mm() occur while task_struct::alloc_lock > is acquired. > Move lru_gen_add_mm() after interrupts are enabled and before > task_unlock(). > > Fixes: bd74fdaea1460 ("mm: multi-gen LRU: support page table walks") > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Thanks. Acked-by: Yu Zhao <yuzhao@xxxxxxxxxx>