While commit a4e92ce8e4c8 ("powerpc/fadump: Reservationless firmware assisted dump"), introduced Linux kernel's Contiguous Memory Allocator (CMA) based reservation for fadump, it came with the assumption that the memory remains reserved even if CMA activation fails. It ensures no kernel pages reside in the reserved memory region, which can't be mapped into the /proc/vmcore. But commit 072355c1cf2d ("mm/cma: expose all pages to the buddy if activation of an area fails") started returning all pages to buddy allocator if CMA activation fails. This led to warning messages like below while running crash-utility on vmcore of a kernel having above two commits: crash: seek error: kernel virtual address: <from reserved region> as reserved memory region ended up having kernel pages crash-utility was looking for. Fix this by introducing an option in CMA, to opt out from exposing pages to buddy allocator, on CMA activation failure. Changes in v3: * Dropped NULL check in cma_reserve_pages_on_error(). * Dropped explicit initialization of cma->reserve_pages_on_error to 'false' in cma_init_reserved_mem(). * Added review tags from David. Changes in v2: * Replaced cma->free_pages_on_error with cma->reserve_pages_on_error & cma_dont_free_pages_on_error() with cma_reserve_pages_on_error() to avoid confusion and make the expectation on failure clearer. Hari Bathini (2): mm/cma: provide option to opt out from exposing pages on activation failure powerpc/fadump: opt out from freeing pages on cma activation failure arch/powerpc/kernel/fadump.c | 6 ++++++ include/linux/cma.h | 2 ++ mm/cma.c | 11 +++++++++-- mm/cma.h | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) -- 2.34.1