Re: [PATCH v7 0/8] x86/kexec: Add exception handling for relocate_kernel
From: David Woodhouse
Date: Thu Mar 13 2025 - 15:58:30 EST
On Thu, 2025-03-13 at 11:54 +0100, Ingo Molnar wrote:
>
> * Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> > I applied the first 3 patches to tip:x86/boot for
> > phased-risk-reduction reasons, and because I had some questions and
> > suggestions starting at patch #4.
>
> So there's a new objtool build warning from the new exc_handler code:
>
> vmlinux.o: warning: objtool: exc_handler+0xe: early indirect call
>
> That's with a x86-64 defconfig + KVM enablement.
Reproduced that by going back to x86-64 defconfig.
vmlinux.o: warning: objtool: exc_handler+0xe: early indirect call
SYM_CODE_START_LOCAL_NOALIGN(exc_handler)
pushq %rax
2b6: 50 push %rax
pushq %rbx
2b7: 53 push %rbx
pushq %rcx
2b8: 51 push %rcx
pushq %rdx
2b9: 52 push %rdx
pushq %rsi
2ba: 56 push %rsi
/* Set up %rdx/%rsi for debug output */
pr_setup
2bb: 48 8d 35 6e ff ff ff lea -0x92(%rip),%rsi # 230 <pr_char>
/* rip and exception info */
print_reg 'E', 'x', 'c', ':', 0x28(%rsp)
2c2: b0 45 mov $0x45,%al
2c4: ff d6 call *%rsi
So it's the 'call *$rsi' instruction at 0x2c4, but that's annotated
with ANNOTATE_RETPOLINE_SAFE:
.macro print_reg a, b, c, d, r
movb $\a, %al
ANNOTATE_RETPOLINE_SAFE
call *%rsi
So what's wrong with that? What *more* do I have to tell objtool to
make it shut up and go away?
Am I missing some documentation which would tell me what it's actually
unhappy about? Because "early indirect call" doesn't enlighten me very
much, and reading tools/objtool/check.c doesn't either.
Attachment:
smime.p7s
Description: S/MIME cryptographic signature