On Wed, May 01, 2019 at 11:59:05AM -0700, Linus Torvalds wrote: > On Wed, May 1, 2019 at 11:52 AM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > > > I got Peter's patch working. Here it is. What do you think? > > I can tell from just looking at it for five seconds that at least the > 32-bit case is buggy. > > You can't look at CS(%rsp) without first also checking that you're not > coming from vm86 mode. Something like so then? Index: linux-2.6/arch/x86/entry/entry_32.S =================================================================== --- linux-2.6.orig/arch/x86/entry/entry_32.S +++ linux-2.6/arch/x86/entry/entry_32.S @@ -1479,6 +1479,10 @@ ENTRY(int3) ASM_CLAC pushl $-1 # mark this as an int +#ifdef CONFIG_VM86 + testl $X86_EFLAGS_VM, PT_EFLAGS(%esp) + jnz .Lfrom_usermode_no_gap +#endif testl $SEGMENT_RPL_MASK, PT_CS(%esp) jnz .Lfrom_usermode_no_gap .rept 6