On Thu, Dec 12, 2024 at 7:15 AM Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > > > diff --git a/include/linux/local_lock_internal.h b/include/linux/local_lock_internal.h > > index 8dd71fbbb6d2..2c0f8a49c2d0 100644 > > --- a/include/linux/local_lock_internal.h > > +++ b/include/linux/local_lock_internal.h > > @@ -148,6 +163,14 @@ typedef spinlock_t local_lock_t; > > __local_lock(lock); \ > > } while (0) > > > > +#define __local_trylock_irqsave(lock, flags) \ > > + ({ \ > > + typecheck(unsigned long, flags); \ > > + flags = 0; \ > > + migrate_disable(); \ > > + spin_trylock(this_cpu_ptr((__lock))); \ > > You should probably do a migrate_enable() here if the trylock fails. Great catch. Thanks!