From d1d56e3b3e54f531166bbb469638afd9db78bdb7 Mon Sep 17 00:00:00 2001 From: Qubot <1445788683@qq.com> Date: Mon, 1 Jun 2026 10:57:09 +0800 Subject: [PATCH] arm64: alternatives: dump failing entry for literal patch --- arch/arm64/kernel/alternative.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm64/kernel/alternative.c b/arch/arm64/kernel/alternative.c index 7bbf5104b..7192e5be3 100644 --- a/arch/arm64/kernel/alternative.c +++ b/arch/arm64/kernel/alternative.c @@ -89,6 +89,19 @@ static __always_inline u32 get_alt_insn(struct alt_instr *alt, __le32 *insnptr, * Disallow patching unhandled instructions using PC relative * literal addresses */ + pr_err("unsupported literal insn in alternative patch: insn=0x%08x orig=%pS repl=%pS alt=%p cpufeature=%u orig_len=%u alt_len=%u\n", + insn, insnptr, altinsnptr, alt, alt->cpufeature, + alt->orig_len, alt->alt_len); + pr_err("alt offsets: orig_offset=%d alt_offset=%d idx=%lu\n", + alt->orig_offset, alt->alt_offset, + (unsigned long)(insnptr - (__le32 *)ALT_ORIG_PTR(alt))); + pr_err("literal classification: is_branch_imm=%d is_adrp=%d is_adr_adrp=%d is_ldr_lit=%d is_ldrsw_lit=%d is_prfm_lit=%d\n", + aarch64_insn_is_branch_imm(insn), + aarch64_insn_is_adrp(insn), + aarch64_insn_is_adr_adrp(insn), + aarch64_insn_is_ldr_lit(insn), + aarch64_insn_is_ldrsw_lit(insn), + aarch64_insn_is_prfm_lit(insn)); BUG(); }