Besides of the already described reasons the pages backended memory holes might be persistent due to having memory mapped IO spaces behind those ranges in the framework of flatmem kernel config. Add such note to the init_unavailable_range() method kdoc in order to point out to one more reason of having the function executed for such regions. Signed-off-by: Serge Semin <fancer.lancer@xxxxxxxxx> --- Please let me know if the IO-space pages must be initialized somehow differently rather relying on free_area_init() executing the init_unavailable_range() method. --- mm/mm_init.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/mm_init.c b/mm/mm_init.c index 077bfe393b5e..3fa33e2d32ba 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -796,6 +796,7 @@ overlap_memmap_init(unsigned long zone, unsigned long *pfn) * - physical memory bank size is not necessarily the exact multiple of the * arbitrary section size * - early reserved memory may not be listed in memblock.memory + * - memory mapped IO space * - memory layouts defined with memmap= kernel parameter may not align * nicely with memmap sections * -- 2.42.1