[PATCH 0/2] fix a kernel oops in reading sysfs valid_zones

From: Toshi Kani
Date: Thu Jan 26 2017 - 15:50:06 EST


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(-)