Skip to content

kentry: A stable bugfix and a bunch of improvements

Andy Lutomirski lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest9 patches 8 repliesIn review
  2. v311 patches 8 repliesApplied

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9x86/dumpstack: Remove unnecessary range check fetching opcode bytesarch/x86/kernel/dumpstack.c+0 -60 replies
2/9x86/kthread,dumpstack: Set task_pt_regs->cs.RPL=3 for kernel threadsarch/x86/kernel/dumpstack.c arch/x86/kernel/process.c+15 -21 reply
3/9x86/entry: Convert ret_from_fork to Carch/x86/entry/common.c arch/x86/entry/entry_32.S arch/x86/entry/entry_64.S +4 more+43 -722 replies
4/9kentry: Simplify the common syscall APIarch/x86/entry/common.c include/linux/entry-common.h kernel/entry/common.c+54 -1462 replies
5/9kentry: Remove enter_from/exit_to_user_mode()include/linux/entry-common.h kernel/entry/common.c+0 -511 reply
6/9entry: Make CONFIG_DEBUG_ENTRY available outside x86arch/x86/Kconfig.debug lib/Kconfig.debug+11 -100 replies
7/9kentry: Add debugging checks for proper kentry API usagekernel/entry/common.c+80 -12 replies
8/9kentry: Check that syscall entries and syscall exits matchinclude/linux/sched.h init/init_task.c kernel/entry/common.c+35 -10 replies
9/9kentry: Verify kentry state in instrumentation_begin/end()arch/x86/kernel/traps.c include/asm-generic/bug.h include/linux/instrumentation.h +1 more+33 -110 replies

Reviews trailers per patch

3 of 9 patches have a Reviewed-by or Acked-by.

PatchMark RutlandJosh Poimboeuf
1/9
2/9A-b
3/9A-b
4/9A-b
5/9
6/9
7/9
8/9
9/9

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

Read the v4 thread

Cover letter [PATCH v4 0/9] kentry: A stable bugfix and a bunch of improvements

I noticed a little bug in fast compat syscalls. I got a bit carried away fixing it. This renames the irqentry stuff to kentry, improves (IMNSHO) the API, and adds lots of debugging.

It also tweaks the unwinder wrt ret_from_fork and rewrites ret_from_fork in C. I did this because the kentry work involved a small change to ret_from_fork, and adjusting the asm is a mess. So C it is.

Changes from v3: Get rid of arm64 special cases

Changes from v1 and v2: Complete rewrite

Andy Lutomirski (9):
x86/dumpstack: Remove unnecessary range check fetching opcode bytes x86/kthread,dumpstack: Set task_pt_regs->cs.RPL=3 for kernel threads x86/entry: Convert ret_from_fork to C
kentry: Simplify the common syscall API
kentry: Remove enter_from/exit_to_user_mode()
entry: Make CONFIG_DEBUG_ENTRY available outside x86
kentry: Add debugging checks for proper kentry API usage
kentry: Check that syscall entries and syscall exits match
kentry: Verify kentry state in instrumentation_begin/end()

 arch/x86/Kconfig.debug           |  10 --
 arch/x86/entry/common.c          |  78 ++++++++++----
 arch/x86/entry/entry_32.S        |  51 ++-------
 arch/x86/entry/entry_64.S        |  33 ++----
 arch/x86/include/asm/switch_to.h |   2 +-
 arch/x86/kernel/dumpstack.c      |  10 +-
 arch/x86/kernel/process.c        |  15 ++-
 arch/x86/kernel/process_32.c     |   2 +-
 arch/x86/kernel/traps.c          |   4 +-
 arch/x86/kernel/unwind_orc.c     |   2 +-
 include/asm-generic/bug.h        |   8 +-
 include/linux/entry-common.h     | 127 +++--------------------
 include/linux/instrumentation.h  |  25 ++++-
 include/linux/sched.h            |   4 +
 init/init_task.c                 |   8 ++
 kernel/entry/common.c            | 173 ++++++++++++++++++++-----------
 lib/Kconfig.debug                |  11 ++
 17 files changed, 267 insertions(+), 296 deletions(-)
Signature · 1 line
2.30.2