lkml.org 
[lkml]   [2021]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 00/11] x86/entry: Clean up entry code
Date
From: Lai Jiangshan <laijs@linux.alibaba.com>

This patchset moves the stack-switch code to the place where
error_entry() return, distangles error_entry() from XENpv and makes
entry_INT80_compat use idtentry macro.

This patchset is highly related to XENpv, because it does the extra
cleanup to convert SWAPGS to swapgs after major cleanup is done.

After error_entry() is distangled from XENpv, a branch in sync_regs()
is removed to.

Patch 1-10 are picked from the patchset
https://lore.kernel.org/lkml/20211126101209.8613-1-jiangshanlai@gmail.com/
which coverts ASM code to C code. These patches are prepared for that
purpose. But this patchset has it own value: it simplifies the stack
switch, avoids leaving the old stack inside a function, and separates
XENpv code with native code without adding new code which can lead to
more cleanups.

Patch 11 is new in this patchset.

Lai Jiangshan (11):
x86/entry: Use swapgs and native_iret directly in
swapgs_restore_regs_and_return_to_usermode
x86/traps: Move pt_regs only in fixup_bad_iret()
x86/entry: Switch the stack after error_entry() returns
x86/entry: move PUSH_AND_CLEAR_REGS out of error_entry
x86/entry: Move cld to the start of idtentry
x86/entry: Don't call error_entry for XENPV
x86/entry: Convert SWAPGS to swapgs in error_entry()
x86/entry: Use idtentry macro for entry_INT80_compat
x86/entry: Convert SWAPGS to swapgs in entry_SYSENTER_compat()
x86: Remove the definition of SWAPGS
x86/entry: Remove the branch in sync_regs()

arch/x86/entry/entry_64.S | 65 +++++++++++++------
arch/x86/entry/entry_64_compat.S | 104 +------------------------------
arch/x86/include/asm/idtentry.h | 47 ++++++++++++++
arch/x86/include/asm/irqflags.h | 2 -
arch/x86/include/asm/proto.h | 4 --
arch/x86/include/asm/traps.h | 2 +-
arch/x86/kernel/traps.c | 25 ++++----
7 files changed, 107 insertions(+), 142 deletions(-)

--
2.19.1.6.gb485710b

\
 
 \ /
  Last update: 2021-12-08 12:09    [W:0.063 / U:1.180 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site