Seems that we have different ways to handle pages allocated by bootmem
or by regular allocator. Is the checking way in [PATCH 09/12] available
here ?
+ /* bootmem page has reserved flag */
+ if (PageReserved(page)) {
......
+ }
If so, I think we can just merge these two functions.
Hmm, direct mapping table isn't allocated by bootmem allocator such as memblock, can't be free by put_page_bootmem().
But I will try to merge these two functions.
+
+ __split_large_page(kpte, address, pbase);
Is this patch going to replace [PATCH 08/12] ?
I wish to replace [PATCH 08/12], but need Congyang and Yasuaki to confirm first:)
If so, __split_large_page() was added and exported in [PATCH 09/12],
then we should move it here, right ?
yes.
and what do you think about moving vmemmap_pud[pmd/pte]_remove() to arch/x86/mm/init_64.c,
to be consistent with vmemmap_populate() ?
I will rework [PATCH 08/12] and [PATCH 09/12] soon.