[PATCH v4 0/4] objtool: Fix INSN_CONTEXT_SWITCH

Josh Poimboeuf posted 4 patches 2 weeks, 6 days ago
arch/x86/xen/xen-asm.S               |  4 +---
tools/objtool/arch/x86/decode.c      | 18 ++++++++++-------
tools/objtool/check.c                | 29 +++++++++++++++++++++-------
tools/objtool/include/objtool/arch.h |  3 ++-
4 files changed, 36 insertions(+), 18 deletions(-)
[PATCH v4 0/4] objtool: Fix INSN_CONTEXT_SWITCH
Posted by Josh Poimboeuf 2 weeks, 6 days ago
I decided to keep the "unsupported instruction in callable function"
warning, it's not hurting anything.  As a result we now have
INSN_SYSCALL and INSN_SYSRET.

v4:
- split up patches
- don't get rid of "unsupported instruction in callable function" warning
- split INSN_CONTEXT_SWITCH -> INSN_SYSCALL / INSN_SYSRET

v3: https://lore.kernel.org/9b23e4413873bee38961e628b0c73f6d3a26d494.1743799705.git.jpoimboe@kernel.org

Josh Poimboeuf (4):
  objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
  objtool: Split INSN_CONTEXT_SWITCH into INSN_SYSCALL and INSN_SYSRET
  objtool: Stop UNRET validation on UD2
  objtool, xen: Fix INSN_SYSCALL / INSN_SYSRET semantics

 arch/x86/xen/xen-asm.S               |  4 +---
 tools/objtool/arch/x86/decode.c      | 18 ++++++++++-------
 tools/objtool/check.c                | 29 +++++++++++++++++++++-------
 tools/objtool/include/objtool/arch.h |  3 ++-
 4 files changed, 36 insertions(+), 18 deletions(-)

-- 
2.49.0
Re: [PATCH v4 0/4] objtool: Fix INSN_CONTEXT_SWITCH
Posted by Peter Zijlstra 2 weeks, 5 days ago
On Tue, Apr 08, 2025 at 12:02:12AM -0700, Josh Poimboeuf wrote:
> I decided to keep the "unsupported instruction in callable function"
> warning, it's not hurting anything.  As a result we now have
> INSN_SYSCALL and INSN_SYSRET.
> 
> v4:
> - split up patches
> - don't get rid of "unsupported instruction in callable function" warning
> - split INSN_CONTEXT_SWITCH -> INSN_SYSCALL / INSN_SYSRET
> 
> v3: https://lore.kernel.org/9b23e4413873bee38961e628b0c73f6d3a26d494.1743799705.git.jpoimboe@kernel.org
> 
> Josh Poimboeuf (4):
>   objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
>   objtool: Split INSN_CONTEXT_SWITCH into INSN_SYSCALL and INSN_SYSRET
>   objtool: Stop UNRET validation on UD2
>   objtool, xen: Fix INSN_SYSCALL / INSN_SYSRET semantics

This looks nice, thanks for doing that. Belated:

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Re: [PATCH v4 0/4] objtool: Fix INSN_CONTEXT_SWITCH
Posted by Ingo Molnar 2 weeks, 6 days ago
* Josh Poimboeuf <jpoimboe@kernel.org> wrote:

> I decided to keep the "unsupported instruction in callable function"
> warning, it's not hurting anything.  As a result we now have
> INSN_SYSCALL and INSN_SYSRET.
> 
> v4:
> - split up patches
> - don't get rid of "unsupported instruction in callable function" warning
> - split INSN_CONTEXT_SWITCH -> INSN_SYSCALL / INSN_SYSRET
> 
> v3: https://lore.kernel.org/9b23e4413873bee38961e628b0c73f6d3a26d494.1743799705.git.jpoimboe@kernel.org
> 
> Josh Poimboeuf (4):
>   objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
>   objtool: Split INSN_CONTEXT_SWITCH into INSN_SYSCALL and INSN_SYSRET
>   objtool: Stop UNRET validation on UD2
>   objtool, xen: Fix INSN_SYSCALL / INSN_SYSRET semantics
> 
>  arch/x86/xen/xen-asm.S               |  4 +---
>  tools/objtool/arch/x86/decode.c      | 18 ++++++++++-------
>  tools/objtool/check.c                | 29 +++++++++++++++++++++-------
>  tools/objtool/include/objtool/arch.h |  3 ++-
>  4 files changed, 36 insertions(+), 18 deletions(-)

I'm wondering about the timing: can this wait for v6.16, or does it 
trigger on some popular config/build-tools combination?

Thanks,

	Ingo
Re: [PATCH v4 0/4] objtool: Fix INSN_CONTEXT_SWITCH
Posted by Ingo Molnar 2 weeks, 6 days ago
* Ingo Molnar <mingo@kernel.org> wrote:

> 
> * Josh Poimboeuf <jpoimboe@kernel.org> wrote:
> 
> > I decided to keep the "unsupported instruction in callable function"
> > warning, it's not hurting anything.  As a result we now have
> > INSN_SYSCALL and INSN_SYSRET.
> > 
> > v4:
> > - split up patches
> > - don't get rid of "unsupported instruction in callable function" warning
> > - split INSN_CONTEXT_SWITCH -> INSN_SYSCALL / INSN_SYSRET
> > 
> > v3: https://lore.kernel.org/9b23e4413873bee38961e628b0c73f6d3a26d494.1743799705.git.jpoimboe@kernel.org
> > 
> > Josh Poimboeuf (4):
> >   objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
> >   objtool: Split INSN_CONTEXT_SWITCH into INSN_SYSCALL and INSN_SYSRET
> >   objtool: Stop UNRET validation on UD2
> >   objtool, xen: Fix INSN_SYSCALL / INSN_SYSRET semantics
> > 
> >  arch/x86/xen/xen-asm.S               |  4 +---
> >  tools/objtool/arch/x86/decode.c      | 18 ++++++++++-------
> >  tools/objtool/check.c                | 29 +++++++++++++++++++++-------
> >  tools/objtool/include/objtool/arch.h |  3 ++-
> >  4 files changed, 36 insertions(+), 18 deletions(-)
> 
> I'm wondering about the timing: can this wait for v6.16, or does it 
> trigger on some popular config/build-tools combination?

On a second look, I think these fixes should go upstream now, so I've 
applied them to tip:objtool/urgent.

Thanks,

	Ingo