On Wed, May 01, 2019 at 11:59:05AM -0700, Linus Torvalds wrote:
> On Wed, May 1, 2019 at 11:52 AM Steven Rostedt <[email protected]> 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

Reply via email to