On Wed, Feb 11, 2026 at 03:22:13PM +0000, 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]>
> ---
>  MAINTAINERS               |  1 +
>  include/linux/zone_lock.h | 38 ++++++++++++++++++++++++++++++++++++++
>  2 files changed, 39 insertions(+)
>  create mode 100644 include/linux/zone_lock.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index b4088f7290be..680c9ae02d7e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -16498,6 +16498,7 @@ F:    include/linux/pgtable.h
>  F:   include/linux/ptdump.h
>  F:   include/linux/vmpressure.h
>  F:   include/linux/vmstat.h
> +F:   include/linux/zone_lock.h
>  F:   kernel/fork.c
>  F:   mm/Kconfig
>  F:   mm/debug.c
> diff --git a/include/linux/zone_lock.h b/include/linux/zone_lock.h
> new file mode 100644
> index 000000000000..c531e26280e6
> --- /dev/null
> +++ b/include/linux/zone_lock.h
> @@ -0,0 +1,38 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _LINUX_ZONE_LOCK_H
> +#define _LINUX_ZONE_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);             \
> +})

Any reason you used macros for above two and inlined functions for remaining?

> +
> +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_ZONE_LOCK_H */
> -- 
> 2.47.3
> 

Reply via email to