On Fri, Feb 11, 2022 at 3:34 AM Joao Martins <joao.m.martins@xxxxxxxxxx> wrote: > > In preparation for describing a memmap with compound pages, move the > actual pte population logic into a separate function > vmemmap_populate_address() and have vmemmap_populate_basepages() walk > through all base pages it needs to populate. > > Signed-off-by: Joao Martins <joao.m.martins@xxxxxxxxxx> > --- > mm/sparse-vmemmap.c | 51 ++++++++++++++++++++++++++++----------------- > 1 file changed, 32 insertions(+), 19 deletions(-) > > diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c > index c506f77cff23..e7be2ef4454b 100644 > --- a/mm/sparse-vmemmap.c > +++ b/mm/sparse-vmemmap.c > @@ -608,33 +608,46 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node) > return pgd; > } > > -int __meminit vmemmap_populate_basepages(unsigned long start, unsigned long end, > - int node, struct vmem_altmap *altmap) > +static int __meminit vmemmap_populate_address(unsigned long addr, int node, > + struct vmem_altmap *altmap) How about making it return a "pte_t *" instead of int. If it returns NULL meaning NOMEM. I'll explain the reason in the next patch. Thanks.