On 2/27/26 17:00, Dmitry Ilvokhin wrote: > Add thin wrappers around zone lock acquire/release operations. This > prepares the code for future tracepoint instrumentation without > modifying individual call sites. > > Centralizing zone lock operations behind wrappers allows future > instrumentation or debugging hooks to be added without touching > all users. > > No functional change intended. The wrappers are introduced in > preparation for subsequent patches and are not yet used. > > Signed-off-by: Dmitry Ilvokhin <[email protected]> > Acked-by: Shakeel Butt <[email protected]>
*checks patch 2 diffstat* I think we could do it as mm/zone_lock.h even and not pollute include/linux/ Even kernel/power/snapshot.c could include it in a somewhat ugly way. However we should also later look at moving that particular code somewhere under mm/ really... Anyway, Reviewed-by: Vlastimil Babka (SUSE) <[email protected]> > --- > MAINTAINERS | 1 + > include/linux/mmzone_lock.h | 38 +++++++++++++++++++++++++++++++++++++ > 2 files changed, 39 insertions(+) > create mode 100644 include/linux/mmzone_lock.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 55af015174a5..947298ecb111 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -16672,6 +16672,7 @@ F: include/linux/memory.h > F: include/linux/mm.h > F: include/linux/mm_*.h > F: include/linux/mmzone.h > +F: include/linux/mmzone_lock.h > F: include/linux/mmdebug.h > F: include/linux/mmu_notifier.h > F: include/linux/pagewalk.h > diff --git a/include/linux/mmzone_lock.h b/include/linux/mmzone_lock.h > new file mode 100644 > index 000000000000..a1cfba8408d6 > --- /dev/null > +++ b/include/linux/mmzone_lock.h > @@ -0,0 +1,38 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _LINUX_MMZONE_LOCK_H > +#define _LINUX_MMZONE_LOCK_H > + > +#include <linux/mmzone.h> > +#include <linux/spinlock.h> > + > +static inline void zone_lock_init(struct zone *zone) > +{ > + spin_lock_init(&zone->lock); > +} > + > +#define zone_lock_irqsave(zone, flags) \ > +do { \ > + spin_lock_irqsave(&(zone)->lock, flags); \ > +} while (0) > + > +#define zone_trylock_irqsave(zone, flags) \ > +({ \ > + spin_trylock_irqsave(&(zone)->lock, flags); \ > +}) > + > +static inline void zone_unlock_irqrestore(struct zone *zone, unsigned long > flags) > +{ > + spin_unlock_irqrestore(&zone->lock, flags); > +} > + > +static inline void zone_lock_irq(struct zone *zone) > +{ > + spin_lock_irq(&zone->lock); > +} > + > +static inline void zone_unlock_irq(struct zone *zone) > +{ > + spin_unlock_irq(&zone->lock); > +} > + > +#endif /* _LINUX_MMZONE_LOCK_H */
