Re: [PATCH 0/2 v8] x86/kdump: Fix 'kmem -s' reported an invalid freepointer when SME was active

From: lijiang
Date: Wed Oct 30 2019 - 21:27:22 EST


Hi,

Please ignore this patch series because the compile warnings are reported by kduild.

I will resend v8 later after the warnings are fixed.

Sorry for this.

Thanks.
Lianbo

å 2019å10æ30æ 11:54, Lianbo Jiang åé:
> In purgatory(), the main things are as below:
>
> [1] verify sha256 hashes for various segments.
> Lets keep these codes, and do not touch the logic.
>
> [2] copy the first 640k content to a backup region.
> Lets safely remove it and clean all code related to backup region.
>
> This patch series will remove the backup region, because the current
> handling of copying the first 640k runs into problems when SME is
> active(https://bugzilla.kernel.org/show_bug.cgi?id=204793).
>
> The low 1M region will always be reserved when the crashkernel kernel
> command line option is specified. And this way makes it unnecessary to
> do anything with the low 1M region, because the memory allocated later
> won't fall into the low 1M area.
>
> This series includes two patches:
> [1] x86/kdump: always reserve the low 1M when the crashkernel option
> is specified
> The low 1M region will always be reserved when the crashkernel
> kernel command line option is specified, which ensures that the
> memory allocated later won't fall into the low 1M area.
>
> [2] x86/kdump: clean up all the code related to the backup region
> Remove the backup region and clean up.
>
> Changes since v1:
> [1] Add extra checking condition: when the crashkernel option is
> specified, reserve the low 640k area.
>
> Changes since v2:
> [1] Reserve the low 1M region when the crashkernel option is only
> specified.(Suggested by Eric)
>
> [2] Remove the unused crash_copy_backup_region()
>
> [3] Remove the backup region and clean up
>
> [4] Split them into three patches
>
> Changes since v3:
> [1] Improve the first patch's log
>
> [2] Improve the third patch based on Eric's suggestions
>
> Changes since v4:
> [1] Correct some typos, and also improve the first patch's log
>
> [2] Add a new function kexec_reserve_low_1MiB() in kernel/kexec_core.c
> and which is called by reserve_real_mode(). (Suggested by Boris)
>
> Changes since v5:
> [1] Call the cmdline_find_option() instead of strstr() to check the
> crashkernel option. (Suggested by Hatayama)
>
> [2] Add a weak function kexec_reserve_low_1MiB() in kernel/kexec_core.c,
> and implement the kexec_reserve_low_1MiB() in arch/x86/kernel/
> machine_kexec_64.c so that it does not cause the compile error
> on non-x86 kernel, and also ensures that it can work well on x86
> kernel.
>
> Changes since v6:
> [1] Move the kexec_reserve_low_1MiB() to arch/x86/kernel/crash.c and
> also move its declaration function to arch/x86/include/asm/crash.h
> (Suggested by Dave Young)
>
> [2] Adjust the corresponding header files.
>
> Changes since v7:
> [1] Change the function name from kexec_reserve_low_1MiB() to
> crash_reserve_low_1M().
>
> Lianbo Jiang (2):
> x86/kdump: always reserve the low 1M when the crashkernel option is
> specified
> x86/kdump: clean up all the code related to the backup region
>
> arch/x86/include/asm/crash.h | 6 ++
> arch/x86/include/asm/kexec.h | 10 ---
> arch/x86/include/asm/purgatory.h | 10 ---
> arch/x86/kernel/crash.c | 102 ++++++++---------------------
> arch/x86/kernel/machine_kexec_64.c | 47 -------------
> arch/x86/purgatory/purgatory.c | 19 ------
> arch/x86/realmode/init.c | 2 +
> 7 files changed, 34 insertions(+), 162 deletions(-)
>