linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] x86/entry: Clean up entry code
@ 2021-12-08 11:08 Lai Jiangshan
  2021-12-08 11:08 ` [PATCH 01/11] x86/entry: Use swapgs and native_iret directly in swapgs_restore_regs_and_return_to_usermode Lai Jiangshan
                   ` (10 more replies)
  0 siblings, 11 replies; 13+ messages in thread
From: Lai Jiangshan @ 2021-12-08 11:08 UTC (permalink / raw)
  To: linux-kernel; +Cc: x86, xen-devel, Lai Jiangshan

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


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2021-12-13 12:13 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-08 11:08 [PATCH 00/11] x86/entry: Clean up entry code Lai Jiangshan
2021-12-08 11:08 ` [PATCH 01/11] x86/entry: Use swapgs and native_iret directly in swapgs_restore_regs_and_return_to_usermode Lai Jiangshan
2021-12-13 12:13   ` Juergen Gross
2021-12-08 11:08 ` [PATCH 02/11] x86/traps: Move pt_regs only in fixup_bad_iret() Lai Jiangshan
2021-12-08 11:08 ` [PATCH 03/11] x86/entry: Switch the stack after error_entry() returns Lai Jiangshan
2021-12-08 11:08 ` [PATCH 04/11] x86/entry: move PUSH_AND_CLEAR_REGS out of error_entry Lai Jiangshan
2021-12-08 11:08 ` [PATCH 05/11] x86/entry: Move cld to the start of idtentry Lai Jiangshan
2021-12-08 11:08 ` [PATCH 06/11] x86/entry: Don't call error_entry for XENPV Lai Jiangshan
2021-12-08 11:08 ` [PATCH 07/11] x86/entry: Convert SWAPGS to swapgs in error_entry() Lai Jiangshan
2021-12-08 11:08 ` [PATCH 08/11] x86/entry: Use idtentry macro for entry_INT80_compat Lai Jiangshan
2021-12-08 11:08 ` [PATCH 09/11] x86/entry: Convert SWAPGS to swapgs in entry_SYSENTER_compat() Lai Jiangshan
2021-12-08 11:08 ` [PATCH 10/11] x86: Remove the definition of SWAPGS Lai Jiangshan
2021-12-08 11:08 ` [PATCH 11/11] x86/entry: Remove the branch in sync_regs() Lai Jiangshan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).