A sysfs memory file is created for each 128MiB or 2GiB of a memory block on x86. [1] When the start address of a memory block is not backed by struct page, i.e. memory range is not aligned by the memory block size, reading its valid_zones attribute file leads to a kernel oops. This patch-set fixes this issue. Patch 1 first fixes an issue in test_pages_in_a_zone() that it does not test the start section. Patch 2 then fixes the kernel oops by extending test_pages_in_a_zone() to return valid [start, end). [1] 2GB when the system has 64GB or larger memory. --- Toshi Kani (2): 1/2 mm/memory_hotplug.c: check start_pfn in test_pages_in_a_zone() 2/2 base/memory, hotplug: fix a kernel oops in show_valid_zones() --- drivers/base/memory.c | 12 ++++++------ include/linux/memory_hotplug.h | 3 ++- mm/memory_hotplug.c | 28 +++++++++++++++++++++------- 3 files changed, 29 insertions(+), 14 deletions(-) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>