On 2/12/22 10:08, Muchun Song wrote: > On Fri, Feb 11, 2022 at 8:37 PM Joao Martins <joao.m.martins@xxxxxxxxxx> wrote: >> On 2/11/22 07:54, Muchun Song wrote: >>> On Fri, Feb 11, 2022 at 3:34 AM Joao Martins <joao.m.martins@xxxxxxxxxx> wrote: >>>> @@ -609,7 +624,8 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node) >>>> } >>>> >>>> static int __meminit vmemmap_populate_address(unsigned long addr, int node, >>>> - struct vmem_altmap *altmap) >>>> + struct vmem_altmap *altmap, >>>> + struct page *reuse, struct page **page) >>> >>> We can remove the last argument (struct page **page) if we change >>> the return type to "pte_t *". More simple, don't you think? >> >> Hmmm, perhaps it is simpler, specially provided the only error code is ENOMEM. >> >> Albeit perhaps what we want is a `struct page *` rather than a pte. > > The caller can extract `struct page` from a pte. > Yeap, we do that here already. Anyway, I can try switching to the style you suggest and see how it looks.