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

Reply via email to