On Sat, Jan 30, 2021 at 03:10:15PM +0800, Chen Zhou wrote: > Move CRASH_ALIGN to header asm/kexec.h for later use. Besides, the > alignment of crash kernel regions in x86 is 16M(CRASH_ALIGN), but > function reserve_crashkernel() also used 1M alignment. So just > replace hard-coded alignment 1M with macro CRASH_ALIGN. [...] > @@ -510,7 +507,7 @@ static void __init reserve_crashkernel(void) > } else { > unsigned long long start; > > - start = memblock_phys_alloc_range(crash_size, SZ_1M, crash_base, > + start = memblock_phys_alloc_range(crash_size, CRASH_ALIGN, > crash_base, > crash_base + crash_size); > if (start != crash_base) { > pr_info("crashkernel reservation failed - memory is in > use.\n");
There is a small functional change here for x86. Prior to this patch, crash_base passed by the user on the command line is allowed to be 1MB aligned. With this patch, such reservation will fail. Is the current behaviour a bug in the current x86 code or it does allow 1MB-aligned reservations? -- Catalin