The patch titled Subject: of: ignore sub-page memory regions has been added to the -mm tree. Its filename is of-ignore-sub-page-memory-regions.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/of-ignore-sub-page-memory-regions.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/of-ignore-sub-page-memory-regions.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> Subject: of: ignore sub-page memory regions Memory region size is rounded down to page boundary and with sub-page region it becomes 0 and there is no point to add an empty region. Moreover, when the base is less than PAGE_SIZE we get a bogus size as (base + size - 1) evaluates to -1. 8cccffc52694 ("of: check for size < 0 after rounding in early_init_dt_add_memory_arch") introduced a test for wrap around for the case when base is not page aligned, the same test can be used to ignore sub-page region sizes. Link: http://lkml.kernel.org/r/1533326330-31677-3-git-send-email-rppt@xxxxxxxxxxxxxxxxxx Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> Reviewed-by: Rob Herring <robh@xxxxxxxxxx> Cc: Guan Xuetao <gxt@xxxxxxxxxx> Cc: Ley Foon Tan <ley.foon.tan@xxxxxxxxx> Cc: Richard Kuo <rkuo@xxxxxxxxxxxxxx> Cc: Richard Weinberger <richard@xxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/of/fdt.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) --- a/drivers/of/fdt.c~of-ignore-sub-page-memory-regions +++ a/drivers/of/fdt.c @@ -1127,12 +1127,13 @@ void __init __weak early_init_dt_add_mem { const u64 phys_offset = MIN_MEMBLOCK_ADDR; + if (size < PAGE_SIZE - (base & ~PAGE_MASK)) { + pr_warn("Ignoring memory block 0x%llx - 0x%llx\n", + base, base + size); + return; + } + if (!PAGE_ALIGNED(base)) { - if (size < PAGE_SIZE - (base & ~PAGE_MASK)) { - pr_warn("Ignoring memory block 0x%llx - 0x%llx\n", - base, base + size); - return; - } size -= PAGE_SIZE - (base & ~PAGE_MASK); base = PAGE_ALIGN(base); } _ Patches currently in -mm which might be from rppt@xxxxxxxxxxxxxxxxxx are hexagon-switch-to-no_bootmem.patch of-ignore-sub-page-memory-regions.patch nios2-use-generic-early_init_dt_add_memory_arch.patch nios2-switch-to-no_bootmem.patch um-setup_physmem-stop-using-global-variables.patch um-switch-to-no_bootmem.patch unicore32-switch-to-no_bootmem.patch