Re: [PATCH v2] drivers/base/cpu: crash data showing should depends on KEXEC_CORE

From: Ignat Korchagin
Date: Tue Nov 28 2023 - 06:51:34 EST


On Tue, Nov 28, 2023 at 5:53 AM Baoquan He <bhe@xxxxxxxxxx> wrote:
>
> After commit 88a6f8994421 ("crash: memory and CPU hotplug sysfs
> attributes"), on x86_64, if only below kernel configs related to kdump
> are set, compiling error are triggered.
>
> ----
> CONFIG_CRASH_CORE=y
> CONFIG_KEXEC_CORE=y
> CONFIG_CRASH_DUMP=y
> CONFIG_CRASH_HOTPLUG=y
> ------
>
> ------------------------------------------------------
> drivers/base/cpu.c: In function ‘crash_hotplug_show’:
> drivers/base/cpu.c:309:40: error: implicit declaration of function ‘crash_hotplug_cpu_support’; did you mean ‘crash_hotplug_show’? [-Werror=implicit-function-declaration]
> 309 | return sysfs_emit(buf, "%d\n", crash_hotplug_cpu_support());
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> | crash_hotplug_show
> cc1: some warnings being treated as errors
> ------------------------------------------------------
>
> CONFIG_KEXEC is used to enable kexec_load interface, the
> crash_notes/crash_notes_size/crash_hotplug showing depends on
> CONFIG_KEXEC is incorrect. It should depend on KEXEC_CORE instead.
>
> Fix it now.
>
> Fixes: commit 88a6f8994421 ("crash: memory and CPU hotplug sysfs attributes")
> Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>

Tested-by: Ignat Korchagin <ignat@xxxxxxxxxxxxxx> # compile-time only
for x86 and arm

> ---
> drivers/base/cpu.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
> index 9ea22e165acd..548491de818e 100644
> --- a/drivers/base/cpu.c
> +++ b/drivers/base/cpu.c
> @@ -144,7 +144,7 @@ static DEVICE_ATTR(release, S_IWUSR, NULL, cpu_release_store);
> #endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */
> #endif /* CONFIG_HOTPLUG_CPU */
>
> -#ifdef CONFIG_KEXEC
> +#ifdef CONFIG_KEXEC_CORE
> #include <linux/kexec.h>
>
> static ssize_t crash_notes_show(struct device *dev,
> @@ -189,14 +189,14 @@ static const struct attribute_group crash_note_cpu_attr_group = {
> #endif
>
> static const struct attribute_group *common_cpu_attr_groups[] = {
> -#ifdef CONFIG_KEXEC
> +#ifdef CONFIG_KEXEC_CORE
> &crash_note_cpu_attr_group,
> #endif
> NULL
> };
>
> static const struct attribute_group *hotplugable_cpu_attr_groups[] = {
> -#ifdef CONFIG_KEXEC
> +#ifdef CONFIG_KEXEC_CORE
> &crash_note_cpu_attr_group,
> #endif
> NULL
> --
> 2.41.0
>