On Fri, Oct 20, 2023 at 04:49:34PM -0700, Andi Kleen wrote: > On Fri, Oct 20, 2023 at 01:45:09PM -0700, Pawan Gupta wrote: > > As done for entry_64, add support for executing VERW late in exit to > > user path for 32-bit mode. > > > > Signed-off-by: Pawan Gupta <pawan.kumar.gupta@xxxxxxxxxxxxxxx> > > --- > > arch/x86/entry/entry_32.S | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S > > index 6e6af42e044a..bbf77d2aab2e 100644 > > --- a/arch/x86/entry/entry_32.S > > +++ b/arch/x86/entry/entry_32.S > > @@ -886,6 +886,9 @@ SYM_FUNC_START(entry_SYSENTER_32) > > popfl > > popl %eax > > > > + /* Mitigate CPU data sampling attacks .e.g. MDS */ > > + USER_CLEAR_CPU_BUFFERS > > + > > /* > > * Return back to the vDSO, which will pop ecx and edx. > > * Don't bother with DS and ES (they already contain __USER_DS). > > Did you forget the INT 0x80 entry point? I do have VERW in the INT80 path, the diff is showing just the label restore_all_switch_stack. Below is the sequence: SYM_FUNC_START(entry_INT80_32) ASM_CLAC pushl %eax /* pt_regs->orig_ax */ SAVE_ALL pt_regs_ax=$-ENOSYS switch_stacks=1 /* save rest */ movl %esp, %eax call do_int80_syscall_32 .Lsyscall_32_done: STACKLEAK_ERASE restore_all_switch_stack: SWITCH_TO_ENTRY_STACK CHECK_AND_APPLY_ESPFIX /* Switch back to user CR3 */ SWITCH_TO_USER_CR3 scratch_reg=%eax BUG_IF_WRONG_CR3 /* Restore user state */ RESTORE_REGS pop=4 # skip orig_eax/error_code /* Mitigate CPU data sampling attacks .e.g. MDS */ USER_CLEAR_CPU_BUFFERS ^^^^^^^^^^^^^^^^^^^^^^