Skip to content

x86,objtool: Split UNWIND_HINT_EMPTY in two

Josh Poimboeuf live-patching lkml 1 version Applied

Status from this message: The following commit has been merged into the objtool/core branch of tip:

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 2 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/6objtool: Add objtool_types.hMAINTAINERS include/linux/objtool.h include/linux/objtool_types.h +6 more+102 -2460 replies
2/6objtool: Use relative pointers for annotationsarch/x86/include/asm/nospec-branch.h include/linux/objtool.h+9 -90 replies
3/6objtool: Change UNWIND_HINT() argument orderarch/x86/include/asm/unwind_hints.h include/linux/objtool.h+3 -40 replies
4/6x86,objtool: Introduce ORC_TYPE_*arch/x86/include/asm/orc_types.h arch/x86/kernel/unwind_orc.c include/linux/objtool_types.h +4 more+36 -120 replies
5/6x86,objtool: Separate unret validation from unwind hintsarch/x86/entry/entry_64.S arch/x86/include/asm/nospec-branch.h arch/x86/include/asm/unwind_hints.h +6 more+85 -450 replies
6/6x86,objtool: Split UNWIND_HINT_EMPTY in twoDocumentation/livepatch/reliable-stacktrace.rst arch/x86/entry/entry_64.S arch/x86/include/asm/orc_types.h +17 more+116 -951 reply

Reviews trailers per patch

1 of 6 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchSteven Rostedt (Google)Peter Zijlstra (Intel)
SeriesA-b
1/6
2/6
3/6
4/6
5/6
6/6A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/6] x86,objtool: Split UNWIND_HINT_EMPTY in two

Based on tip/objtool/core.

Mark reported that the ORC unwinder incorrectly marks an unwind as reliable when the unwind terminates prematurely in the dark corners of return_to_handler() due to lack of information about the next frame.

The problem is UNWIND_HINT_EMPTY is used in two different situations:
end-of-stack marker and undefined stack state.

Split it up into UNWIND_HINT_END_OF_STACK and UNWIND_HINT_UNDEFINED.

Josh Poimboeuf (6):
objtool: Add objtool_types.h
objtool: Use relative pointers for annotations
objtool: Change UNWIND_HINT() argument order x86,objtool: Introduce ORC_TYPE_*
x86,objtool: Separate unret validation from unwind hints x86,objtool: Split UNWIND_HINT_EMPTY in two

 .../livepatch/reliable-stacktrace.rst         |   2 +-
 MAINTAINERS                                   |   2 +-
 arch/x86/entry/entry_64.S                     |  26 +--
 arch/x86/include/asm/nospec-branch.h          |  14 +-
 arch/x86/include/asm/orc_types.h              |  12 +-
 arch/x86/include/asm/unwind_hints.h           |  18 +-
 arch/x86/kernel/ftrace_64.S                   |   2 +-
 arch/x86/kernel/head_64.S                     |  17 +-
 arch/x86/kernel/relocate_kernel_64.S          |  10 +-
 arch/x86/kernel/unwind_orc.c                  |  27 ++-
 arch/x86/lib/retpoline.S                      |   6 +-
 arch/x86/platform/pvh/head.S                  |   2 +-
 arch/x86/xen/xen-asm.S                        |   4 +-
 arch/x86/xen/xen-head.S                       |   4 +-
 include/linux/objtool.h                       |  81 +++----
 include/linux/objtool_types.h                 |  57 +++++
 scripts/sorttable.h                           |   2 +-
 tools/arch/x86/include/asm/orc_types.h        |  12 +-
 tools/include/linux/objtool.h                 | 200 ------------------
 tools/include/linux/objtool_types.h           |  57 +++++
 tools/objtool/check.c                         |  69 ++++--
 tools/objtool/include/objtool/check.h         |   4 +-
 tools/objtool/orc_dump.c                      |  15 +-
 tools/objtool/orc_gen.c                       |  43 ++--
 tools/objtool/sync-check.sh                   |   2 +-
 25 files changed, 314 insertions(+), 374 deletions(-)
 create mode 100644 include/linux/objtool_types.h
 delete mode 100644 tools/include/linux/objtool.h
 create mode 100644 tools/include/linux/objtool_types.h
Signature · 1 line
2.39.1