arm64: alternatives: dump failing entry for literal patch

This commit is contained in:
Qubot 2026-06-01 10:57:09 +08:00
parent ef20315039
commit d1d56e3b3e

View File

@ -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();
}