Re: [PATCH v3 17/29] s390: introduce arch_zone_limits_init()

Mike Rapoport
2026-01-12T07:35:07Z

Hi,

On Mon, Jan 12, 2026 at 08:02:48AM +0100, Alexander Gordeev wrote:
> On Sun, Jan 11, 2026 at 10:20:51AM +0200, Mike Rapoport wrote:
>
> Hi Mike,
>
> ...
> > +void __init arch_zone_limits_init(unsigned long *max_zone_pfns)
> > +{
> > + max_zone_pfns[ZONE_DMA] = virt_to_pfn(MAX_DMA_ADDRESS);
> > + max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
> > +}
> > +
> > /*
> > * paging_init() sets up the page tables
> > */
> > @@ -97,8 +103,7 @@ void __init paging_init(void)
> > sparse_init();
> > zone_dma_limit = DMA_BIT_MASK(31);
> > memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
> > - max_zone_pfns[ZONE_DMA] = virt_to_pfn(MAX_DMA_ADDRESS);
> > - max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
> > + arch_zone_limits_init(max_zone_pfns);
>
> You move initialization of max_zone_pfns[] to a function, name the
> function arch_zone_limits_init(), but leave the initializatio of
> max_zone_pfns[] to zeroes outside. Should not it be brought along?

The idea is that is the caller responsibility to initialize max_zone_pfns
to zero. After patch 24: "arch, mm: consolidate initialization of
SPARSE memory model" there is a single caller of arch_zone_limits_init()
and having initialization of max_zone_pfns() there is more optimal than
having 20-something of those.

> > free_area_init(max_zone_pfns);
> > }
>
> Thanks!

--
Sincerely yours,
Mike.