All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: Ignat Korchagin <ignat@cloudflare.com>
Cc: linux-kernel@vger.kernel.org, kexec@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
	akpm@linux-foundation.org, eric_devolder@yahoo.com,
	kernel-team <kernel-team@cloudflare.com>
Subject: Re: [PATCH 1/3] kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
Date: Thu, 23 Nov 2023 19:07:55 +0800	[thread overview]
Message-ID: <ZV8yi86cA5mhYNll@MiWiFi-R3L-srv> (raw)
In-Reply-To: <CALrw=nEO3A2MPeSXhO3=cPdrAFB07sQcnjNN5V5jj2YcqAZ+bQ@mail.gmail.com>

On 11/23/23 at 08:23am, Ignat Korchagin wrote:
> On Thu, Nov 23, 2023 at 7:37 AM Baoquan He <bhe@redhat.com> wrote:
> >
> > Ignat Korchagin complained that a potential config regression was
> > introduced by commit 89cde455915f ("kexec: consolidate kexec and
> > crash options into kernel/Kconfig.kexec"). Before the commit,
> > CONFIG_CRASH_DUMP has no dependency on CONFIG_KEXEC. After the commit,
> > CRASH_DUMP selects KEXEC. That enforces system to have CONFIG_KEXEC=y
> > as long as CONFIG_CRASH_DUMP=Y which people may not want.
> >
> > In Ignat's case, he sets CONFIG_CRASH_DUMP=y, CONFIG_KEXEC_FILE=y and
> > CONFIG_KEXEC=n because kexec_load interface could have security issue if
> > kernel/initrd has no chance to be signed and verified.
> >
> > CRASH_DUMP has select of KEXEC because Eric, author of above commit,
> > met a LKP report of build failure when posting patch of earlier version.
> > Please see below link to get detail of the LKP report:
> >
> >     https://lore.kernel.org/all/3e8eecd1-a277-2cfb-690e-5de2eb7b988e@oracle.com/T/#u
> >
> > In fact, that LKP report is triggered because arm's <asm/kexec.h> is
> > wrapped in CONFIG_KEXEC ifdeffery scope. That is wrong. CONFIG_KEXEC
> > controls the enabling/disabling of kexec_load interface, but not kexec
> > feature. Removing the wrongly added CONFIG_KEXEC ifdeffery scope in
> > <asm/kexec.h> of arm allows us to drop the select KEXEC for CRASH_DUMP.
> 
> Hm... With the patch, when cross compiling for arm and
> CONFIG_KEXEC_CORE=y
> # CONFIG_KEXEC is not set
> CONFIG_CRASH_DUMP=y
> 
> I get the following linker error at the end:
> 
>   CALL    scripts/checksyscalls.sh
>   UPD     include/generated/utsversion.h
>   CC      init/version-timestamp.o
>   LD      .tmp_vmlinux.kallsyms1
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `kimage_free':
> kexec_core.c:(.text+0xf5c): undefined reference to `machine_kexec_cleanup'
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `__crash_kexec':
> kexec_core.c:(.text+0x15bc): undefined reference to `machine_crash_shutdown'
> arm-linux-gnueabi-ld: kexec_core.c:(.text+0x15c4): undefined reference
> to `machine_kexec'
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `kernel_kexec':
> kexec_core.c:(.text+0x1a04): undefined reference to `machine_kexec'
> make[2]: *** [scripts/Makefile.vmlinux:37: vmlinux] Error 1
> make[1]: *** [/home/ignat/git/linux-upstream/Makefile:1154: vmlinux] Error 2
> make: *** [Makefile:234: __sub-make] Error 2

Oops, I forgot this part. This should fix the link error.

diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index d53f56d6f840..771264d4726a 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -59,7 +59,7 @@ obj-$(CONFIG_FUNCTION_TRACER)	+= entry-ftrace.o
 obj-$(CONFIG_DYNAMIC_FTRACE)	+= ftrace.o insn.o patch.o
 obj-$(CONFIG_FUNCTION_GRAPH_TRACER)	+= ftrace.o insn.o patch.o
 obj-$(CONFIG_JUMP_LABEL)	+= jump_label.o insn.o patch.o
-obj-$(CONFIG_KEXEC)		+= machine_kexec.o relocate_kernel.o
+obj-$(CONFIG_KEXEC_CORE)	+= machine_kexec.o relocate_kernel.o
 # Main staffs in KPROBES are in arch/arm/probes/ .
 obj-$(CONFIG_KPROBES)		+= patch.o insn.o
 obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com>
To: Ignat Korchagin <ignat@cloudflare.com>
Cc: linux-kernel@vger.kernel.org, kexec@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
	akpm@linux-foundation.org, eric_devolder@yahoo.com,
	kernel-team <kernel-team@cloudflare.com>
Subject: Re: [PATCH 1/3] kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
Date: Thu, 23 Nov 2023 19:07:55 +0800	[thread overview]
Message-ID: <ZV8yi86cA5mhYNll@MiWiFi-R3L-srv> (raw)
In-Reply-To: <CALrw=nEO3A2MPeSXhO3=cPdrAFB07sQcnjNN5V5jj2YcqAZ+bQ@mail.gmail.com>

On 11/23/23 at 08:23am, Ignat Korchagin wrote:
> On Thu, Nov 23, 2023 at 7:37 AM Baoquan He <bhe@redhat.com> wrote:
> >
> > Ignat Korchagin complained that a potential config regression was
> > introduced by commit 89cde455915f ("kexec: consolidate kexec and
> > crash options into kernel/Kconfig.kexec"). Before the commit,
> > CONFIG_CRASH_DUMP has no dependency on CONFIG_KEXEC. After the commit,
> > CRASH_DUMP selects KEXEC. That enforces system to have CONFIG_KEXEC=y
> > as long as CONFIG_CRASH_DUMP=Y which people may not want.
> >
> > In Ignat's case, he sets CONFIG_CRASH_DUMP=y, CONFIG_KEXEC_FILE=y and
> > CONFIG_KEXEC=n because kexec_load interface could have security issue if
> > kernel/initrd has no chance to be signed and verified.
> >
> > CRASH_DUMP has select of KEXEC because Eric, author of above commit,
> > met a LKP report of build failure when posting patch of earlier version.
> > Please see below link to get detail of the LKP report:
> >
> >     https://lore.kernel.org/all/3e8eecd1-a277-2cfb-690e-5de2eb7b988e@oracle.com/T/#u
> >
> > In fact, that LKP report is triggered because arm's <asm/kexec.h> is
> > wrapped in CONFIG_KEXEC ifdeffery scope. That is wrong. CONFIG_KEXEC
> > controls the enabling/disabling of kexec_load interface, but not kexec
> > feature. Removing the wrongly added CONFIG_KEXEC ifdeffery scope in
> > <asm/kexec.h> of arm allows us to drop the select KEXEC for CRASH_DUMP.
> 
> Hm... With the patch, when cross compiling for arm and
> CONFIG_KEXEC_CORE=y
> # CONFIG_KEXEC is not set
> CONFIG_CRASH_DUMP=y
> 
> I get the following linker error at the end:
> 
>   CALL    scripts/checksyscalls.sh
>   UPD     include/generated/utsversion.h
>   CC      init/version-timestamp.o
>   LD      .tmp_vmlinux.kallsyms1
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `kimage_free':
> kexec_core.c:(.text+0xf5c): undefined reference to `machine_kexec_cleanup'
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `__crash_kexec':
> kexec_core.c:(.text+0x15bc): undefined reference to `machine_crash_shutdown'
> arm-linux-gnueabi-ld: kexec_core.c:(.text+0x15c4): undefined reference
> to `machine_kexec'
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `kernel_kexec':
> kexec_core.c:(.text+0x1a04): undefined reference to `machine_kexec'
> make[2]: *** [scripts/Makefile.vmlinux:37: vmlinux] Error 1
> make[1]: *** [/home/ignat/git/linux-upstream/Makefile:1154: vmlinux] Error 2
> make: *** [Makefile:234: __sub-make] Error 2

Oops, I forgot this part. This should fix the link error.

diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index d53f56d6f840..771264d4726a 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -59,7 +59,7 @@ obj-$(CONFIG_FUNCTION_TRACER)	+= entry-ftrace.o
 obj-$(CONFIG_DYNAMIC_FTRACE)	+= ftrace.o insn.o patch.o
 obj-$(CONFIG_FUNCTION_GRAPH_TRACER)	+= ftrace.o insn.o patch.o
 obj-$(CONFIG_JUMP_LABEL)	+= jump_label.o insn.o patch.o
-obj-$(CONFIG_KEXEC)		+= machine_kexec.o relocate_kernel.o
+obj-$(CONFIG_KEXEC_CORE)	+= machine_kexec.o relocate_kernel.o
 # Main staffs in KPROBES are in arch/arm/probes/ .
 obj-$(CONFIG_KPROBES)		+= patch.o insn.o
 obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o


WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com>
To: Ignat Korchagin <ignat@cloudflare.com>
Cc: linux-kernel@vger.kernel.org, kexec@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
	akpm@linux-foundation.org, eric_devolder@yahoo.com,
	kernel-team <kernel-team@cloudflare.com>
Subject: Re: [PATCH 1/3] kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
Date: Thu, 23 Nov 2023 19:07:55 +0800	[thread overview]
Message-ID: <ZV8yi86cA5mhYNll@MiWiFi-R3L-srv> (raw)
In-Reply-To: <CALrw=nEO3A2MPeSXhO3=cPdrAFB07sQcnjNN5V5jj2YcqAZ+bQ@mail.gmail.com>

On 11/23/23 at 08:23am, Ignat Korchagin wrote:
> On Thu, Nov 23, 2023 at 7:37 AM Baoquan He <bhe@redhat.com> wrote:
> >
> > Ignat Korchagin complained that a potential config regression was
> > introduced by commit 89cde455915f ("kexec: consolidate kexec and
> > crash options into kernel/Kconfig.kexec"). Before the commit,
> > CONFIG_CRASH_DUMP has no dependency on CONFIG_KEXEC. After the commit,
> > CRASH_DUMP selects KEXEC. That enforces system to have CONFIG_KEXEC=y
> > as long as CONFIG_CRASH_DUMP=Y which people may not want.
> >
> > In Ignat's case, he sets CONFIG_CRASH_DUMP=y, CONFIG_KEXEC_FILE=y and
> > CONFIG_KEXEC=n because kexec_load interface could have security issue if
> > kernel/initrd has no chance to be signed and verified.
> >
> > CRASH_DUMP has select of KEXEC because Eric, author of above commit,
> > met a LKP report of build failure when posting patch of earlier version.
> > Please see below link to get detail of the LKP report:
> >
> >     https://lore.kernel.org/all/3e8eecd1-a277-2cfb-690e-5de2eb7b988e@oracle.com/T/#u
> >
> > In fact, that LKP report is triggered because arm's <asm/kexec.h> is
> > wrapped in CONFIG_KEXEC ifdeffery scope. That is wrong. CONFIG_KEXEC
> > controls the enabling/disabling of kexec_load interface, but not kexec
> > feature. Removing the wrongly added CONFIG_KEXEC ifdeffery scope in
> > <asm/kexec.h> of arm allows us to drop the select KEXEC for CRASH_DUMP.
> 
> Hm... With the patch, when cross compiling for arm and
> CONFIG_KEXEC_CORE=y
> # CONFIG_KEXEC is not set
> CONFIG_CRASH_DUMP=y
> 
> I get the following linker error at the end:
> 
>   CALL    scripts/checksyscalls.sh
>   UPD     include/generated/utsversion.h
>   CC      init/version-timestamp.o
>   LD      .tmp_vmlinux.kallsyms1
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `kimage_free':
> kexec_core.c:(.text+0xf5c): undefined reference to `machine_kexec_cleanup'
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `__crash_kexec':
> kexec_core.c:(.text+0x15bc): undefined reference to `machine_crash_shutdown'
> arm-linux-gnueabi-ld: kexec_core.c:(.text+0x15c4): undefined reference
> to `machine_kexec'
> arm-linux-gnueabi-ld: kernel/kexec_core.o: in function `kernel_kexec':
> kexec_core.c:(.text+0x1a04): undefined reference to `machine_kexec'
> make[2]: *** [scripts/Makefile.vmlinux:37: vmlinux] Error 1
> make[1]: *** [/home/ignat/git/linux-upstream/Makefile:1154: vmlinux] Error 2
> make: *** [Makefile:234: __sub-make] Error 2

Oops, I forgot this part. This should fix the link error.

diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index d53f56d6f840..771264d4726a 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -59,7 +59,7 @@ obj-$(CONFIG_FUNCTION_TRACER)	+= entry-ftrace.o
 obj-$(CONFIG_DYNAMIC_FTRACE)	+= ftrace.o insn.o patch.o
 obj-$(CONFIG_FUNCTION_GRAPH_TRACER)	+= ftrace.o insn.o patch.o
 obj-$(CONFIG_JUMP_LABEL)	+= jump_label.o insn.o patch.o
-obj-$(CONFIG_KEXEC)		+= machine_kexec.o relocate_kernel.o
+obj-$(CONFIG_KEXEC_CORE)	+= machine_kexec.o relocate_kernel.o
 # Main staffs in KPROBES are in arch/arm/probes/ .
 obj-$(CONFIG_KPROBES)		+= patch.o insn.o
 obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-11-23 11:08 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-23  7:36 [PATCH 0/3] kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP Baoquan He
2023-11-23  7:36 ` Baoquan He
2023-11-23  7:36 ` Baoquan He
2023-11-23  7:36 ` [PATCH 1/3] " Baoquan He
2023-11-23  7:36   ` Baoquan He
2023-11-23  7:36   ` Baoquan He
2023-11-23  8:23   ` Ignat Korchagin
2023-11-23  8:23     ` Ignat Korchagin
2023-11-23  8:23     ` Ignat Korchagin
2023-11-23 11:07     ` Baoquan He [this message]
2023-11-23 11:07       ` Baoquan He
2023-11-23 11:07       ` Baoquan He
2023-11-23  7:36 ` [PATCH 2/3] drivers/base/cpu: crash data showing should depends on KEXEC_CORE Baoquan He
2023-11-23  7:36   ` Baoquan He
2023-11-23  7:36   ` Baoquan He
2023-11-23  8:34   ` Ignat Korchagin
2023-11-23  8:34     ` Ignat Korchagin
2023-11-23  8:34     ` Ignat Korchagin
2023-11-23 11:15     ` Baoquan He
2023-11-23 11:15       ` Baoquan He
2023-11-23 11:15       ` Baoquan He
2023-11-24 16:44       ` Andrew Morton
2023-11-24 16:44         ` Andrew Morton
2023-11-24 16:44         ` Andrew Morton
2023-11-25  2:29         ` Baoquan He
2023-11-25  2:29           ` Baoquan He
2023-11-25  2:29           ` Baoquan He
2023-11-23 14:13   ` Alexander Gordeev
2023-11-23 14:13     ` Alexander Gordeev
2023-11-23 14:13     ` Alexander Gordeev
2023-11-23 14:27     ` Baoquan He
2023-11-23 14:27       ` Baoquan He
2023-11-23 14:27       ` Baoquan He
2023-11-23  7:36 ` [PATCH 3/3] s390/Kconfig: drop select of KEXEC Baoquan He
2023-11-23  7:36   ` Baoquan He
2023-11-23  7:36   ` Baoquan He
2023-11-23 13:43   ` Alexander Gordeev
2023-11-23 13:43     ` Alexander Gordeev
2023-11-23 13:43     ` Alexander Gordeev
2023-11-23 14:31     ` Baoquan He
2023-11-23 14:31       ` Baoquan He
2023-11-23 14:31       ` Baoquan He
2023-11-26  0:07 ` [PATCH 0/3] kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP Eric DeVolder
2023-11-26  0:07   ` Eric DeVolder
2023-11-26  0:07   ` Eric DeVolder
2023-11-27  3:29   ` Baoquan He
2023-11-27  3:29     ` Baoquan He
2023-11-27  3:29     ` Baoquan He

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZV8yi86cA5mhYNll@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=eric_devolder@yahoo.com \
    --cc=ignat@cloudflare.com \
    --cc=kernel-team@cloudflare.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.