OpenCloudOS-Kernel/arch/arm
Baoquan He 2d16a9f778 kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP
[ Upstream commit dccf78d39f1069a5ddf4328bf0c97aa5f2f4296e ]

Ignat Korchagin complained that a potential config regression was
introduced by commit 89cde45591 ("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.
Meanwhile, change arch/arm/kernel/Makefile to let machine_kexec.o
relocate_kernel.o depend on KEXEC_CORE.

Link: https://lkml.kernel.org/r/20231128054457.659452-1-bhe@redhat.com
Fixes: 89cde45591 ("kexec: consolidate kexec and crash options into kernel/Kconfig.kexec")
Signed-off-by: Baoquan He <bhe@redhat.com>
Reported-by: Ignat Korchagin <ignat@cloudflare.com>
Tested-by: Ignat Korchagin <ignat@cloudflare.com>	[compile-time only]
Tested-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: Eric DeVolder <eric_devolder@yahoo.com>
Tested-by: Eric DeVolder <eric_devolder@yahoo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-12-13 18:45:19 +01:00
..
boot ARM: dts: imx28-xea: Pass the 'model' property 2023-12-13 18:45:18 +01:00
common ARM: 9318/1: locomo: move kernel-doc to prevent warnings 2023-08-14 12:17:00 +01:00
configs Kbuild updates for v6.6 2023-09-05 11:01:47 -07:00
crypto
include kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP 2023-12-13 18:45:19 +01:00
kernel kernel/Kconfig.kexec: drop select of KEXEC for CRASH_DUMP 2023-12-13 18:45:19 +01:00
lib ARM: 9321/1: memset: cast the constant byte to unsigned char 2023-11-20 11:59:20 +01:00
mach-actions
mach-airoha
mach-alpine ARM: alpine: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: at91: Explicitly include correct DT includes 2023-07-29 16:56:04 +03:00
mach-axxia
mach-bcm ARM: bcm: Drop unused includes 2023-07-21 10:01:47 -07:00
mach-berlin ARM: berlin: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-clps711x
mach-davinci ARM: davinci: Drop unused includes 2023-08-29 16:01:32 -04:00
mach-digicolor
mach-dove ARM: dove: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-ep93xx
mach-exynos ARM: SoC changes for 6.5 2023-06-29 15:28:33 -07:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi ARM: hisi: Drop unused includes 2023-07-19 06:29:04 +00:00
mach-hpe ARM: hpe: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-imx ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init 2023-12-13 18:45:18 +01:00
mach-ixp4xx
mach-keystone ARM: keystone: Merge PM function into main support file 2023-08-01 23:57:28 -05:00
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: Drop unused includes 2023-07-31 11:58:18 +02:00
mach-milbeaut
mach-mmp ARM: mmp: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-moxart
mach-mstar
mach-mv78xx0
mach-mvebu ARM: mvebu: Explicitly include correct DT includes 2023-08-12 10:31:00 +02:00
mach-mxs ARM: 9298/1: Drop custom mdesc->handle_irq() 2023-06-19 09:35:48 +01:00
mach-nomadik ARM: nomadik: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-npcm ARM: npcm: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-nspire ARM: nspire: Remove unused header file mmio.h 2023-08-12 11:49:32 +02:00
mach-omap1 ARM: OMAP1: ams-delta: Fix MODEM initialization failure 2023-10-13 10:59:48 +03:00
mach-omap2 ARM: omap2: fix a debug printk 2023-10-07 10:43:04 +03:00
mach-orion5x
mach-pxa ARM: SoC cleanups for 6.6 2023-08-30 16:49:40 -07:00
mach-qcom
mach-rda
mach-realtek
mach-rockchip ARM: rockchip: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-rpc
mach-s3c ARM: s3c: Switch i2c drivers back to use .probe() 2023-05-30 09:40:37 +02:00
mach-s5pv210 ARM: s5pv210: Explicitly include correct DT includes 2023-08-14 18:15:48 +02:00
mach-sa1100 ARM: locomo: fix locomolcd_power declaration 2023-09-28 09:15:51 +02:00
mach-shmobile ARM: shmobile: rcar-gen2: Drop unused OF includes 2023-07-25 11:11:42 +02:00
mach-socfpga ARM: socfpga: Explicitly include correct DT includes 2023-07-20 14:38:38 -05:00
mach-spear ARM: spear: Explicitly include correct DT includes 2023-08-12 10:31:01 +02:00
mach-sti ARM: sti: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-stm32
mach-sunplus
mach-sunxi
mach-tegra
mach-uniphier
mach-ux500 ARM: ux500: Move power-domain driver to the genpd dir 2023-07-14 10:41:59 +02:00
mach-versatile ARM: versatile: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-vt8500
mach-zynq ARM: zynq: Explicitly include correct DT includes 2023-07-20 17:06:50 +02:00
mm ARM: uniphier: fix cache kernel-doc warnings 2023-09-27 11:02:14 +02:00
net
nwfpe
plat-orion
probes ARM: 9303/1: kprobes: avoid missing-declaration warnings 2023-06-19 09:35:51 +01:00
tools arch: Register fchmodat2, usually as syscall 452 2023-07-27 12:25:35 +02:00
vdso ARM: 9313/1: vdso: add missing prototypes 2023-06-19 09:35:58 +01:00
vfp Merge branch 'devel-stable' into for-next 2023-08-14 12:18:06 +01:00
xen arm/xen: fix xen_vcpu_info allocation alignment 2023-12-03 07:33:05 +01:00
Kbuild
Kconfig treewide: drop CONFIG_EMBEDDED 2023-08-21 13:46:25 -07:00
Kconfig-nommu
Kconfig.assembler
Kconfig.debug
Makefile