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>>