[PATCH OLK-6.6] arm64/ACPI: fix build error when CONFIG_ACPI_APEI_GHES is disabled
hulk inclusion category: bugfix bugzilla: https://atomgit.com/openeuler/kernel/issues/9116 ------------------------------------------ When CONFIG_ACPI_APEI_GHES=n, apei_claim_sei() is not defined. Commit cd342fd16526 ("ACPI/APEI/arm64: add vendor SEI handling for firmware-first RAS") placed its declaration and inline stub inside the CONFIG_ACPI block in arch/arm64/include/asm/acpi.h, but the function is implemented in ghes.c which depends on CONFIG_ACPI_APEI_GHES, not CONFIG_ACPI. This leads to a link failure: aarch64-linux-gnu-ld: arch/arm64/kernel/traps.o: in function `arm64_is_fatal_ras_serror': traps.c:(.text+0x1490): undefined reference to `apei_claim_sei' Fix it by moving the declaration and stub to include/acpi/ghes.h, where they are correctly guarded by CONFIG_ACPI_APEI_GHES, and add the necessary #include in traps.c. Fixes: cd342fd16526 ("ACPI/APEI/arm64: add vendor SEI handling for firmware-first RAS") Signed-off-by: Wupeng Ma <mawupeng1@huawei.com> --- arch/arm64/include/asm/acpi.h | 2 -- arch/arm64/kernel/traps.c | 1 + include/acpi/ghes.h | 3 +++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h index 693dc4c7b8173..c07a58b96329d 100644 --- a/arch/arm64/include/asm/acpi.h +++ b/arch/arm64/include/asm/acpi.h @@ -134,11 +134,9 @@ static inline int get_cpu_for_acpi_id(u32 uid) static inline void arch_fix_phys_package_id(int num, u32 slot) { } void __init acpi_init_cpus(void); int apei_claim_sea(struct pt_regs *regs); -int apei_claim_sei(struct pt_regs *regs); #else static inline void acpi_init_cpus(void) { } static inline int apei_claim_sea(struct pt_regs *regs) { return -ENOENT; } -static inline int apei_claim_sei(struct pt_regs *regs) { return -ENOENT; } #endif /* CONFIG_ACPI */ #ifdef CONFIG_ARM64_ACPI_PARKING_PROTOCOL diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c index e8ef661715f00..6d5c4039b9219 100644 --- a/arch/arm64/kernel/traps.c +++ b/arch/arm64/kernel/traps.c @@ -31,6 +31,7 @@ #include <linux/ubsan.h> #include <linux/cfi.h> #include <linux/acpi.h> +#include <acpi/ghes.h> #include <asm/atomic.h> #include <asm/bug.h> diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h index ebd21b05fe6ed..73a4e64c89002 100644 --- a/include/acpi/ghes.h +++ b/include/acpi/ghes.h @@ -72,10 +72,13 @@ void ghes_unregister_vendor_record_notifier(struct notifier_block *nb); struct list_head *ghes_get_devices(void); void ghes_estatus_pool_region_free(unsigned long addr, u32 size); +int apei_claim_sei(struct pt_regs *regs); #else static inline struct list_head *ghes_get_devices(void) { return NULL; } static inline void ghes_estatus_pool_region_free(unsigned long addr, u32 size) { return; } + +static inline int apei_claim_sei(struct pt_regs *regs) { return -ENOENT; } #endif int ghes_estatus_pool_init(unsigned int num_ghes); -- 2.43.0
反馈: 您发送到kernel@openeuler.org的补丁/补丁集,已成功转换为PR! PR链接地址: https://atomgit.com/openeuler/kernel/merge_requests/22902 邮件列表地址:https://mailweb.openeuler.org/archives/list/kernel@openeuler.org/message/KQZ... FeedBack: The patch(es) which you have sent to kernel@openeuler.org mailing list has been converted to a pull request successfully! Pull request link: https://atomgit.com/openeuler/kernel/merge_requests/22902 Mailing list address: https://mailweb.openeuler.org/archives/list/kernel@openeuler.org/message/KQZ...
participants (2)
-
patchwork bot -
Wupeng Ma