Prabhakar recently reported a kdump kernel boot failure on ThunderX2 arm64 plaforms (which I was able to reproduce on ampere arm64 machines as well), (see [1]), which is seen when a corner case is hit on some arm64 boards when kdump kernel runs with "cgroup_disable=memory" passed to the kdump kernel (via bootargs) and the crashkernel was originally allocated from either a ZONE_DMA32 memory or mixture of memory chunks belonging to both ZONE_DMA and ZONE_DMA32 regions. While [PATCH 1/2] fixes the OOPS inside mem_cgroup_get_nr_swap_pages() function, [PATCH 2/2] fixes the OOM seen inside the kdump kernel by allocating the crashkernel inside ZONE_DMA region only. [1]. https://marc.info/?l=kexec&m=158954035710703&w=4 Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx> Cc: James Morse <james.morse@xxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: cgroups@xxxxxxxxxxxxxxx Cc: linux-mm@xxxxxxxxx Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Cc: kexec@xxxxxxxxxxxxxxxxxxx Reported-by: Prabhakar Kushwaha <pkushwaha@xxxxxxxxxxx> Signed-off-by: Bhupesh Sharma <bhsharma@xxxxxxxxxx> Bhupesh Sharma (2): mm/memcontrol: Fix OOPS inside mem_cgroup_get_nr_swap_pages() arm64: Allocate crashkernel always in ZONE_DMA arch/arm64/mm/init.c | 16 ++++++++++++++-- mm/memcontrol.c | 9 ++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) -- 2.7.4