• Rusty Russell's avatar
    lguest, x86/entry/32: Fix handling of guest syscalls using interrupt gates · f87e0434
    Rusty Russell authored
    In a798f091 ("x86/entry/32: Change INT80 to be an interrupt gate")
    Andy broke lguest.  This is because lguest had special code to allow
    the 0x80 trap gate go straight into the guest itself; interrupts gates
    (without more work, as mentioned in the file's comments) bounce via
    the hypervisor.
    
    His change made them go via the hypervisor, but as it's in the range of
    normal hardware interrupts, they were not directed through to the guest
    at all.  Turns out the guest userspace isn't very effective if syscalls
    are all noops.
    
    I haven't ripped out all the now-useless trap-direct-to-guest-kernel
    code yet, since it will still be needed if someone decides to update
    this optimization.
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Weisbecker <fweisbec@gmail.com>
    Cc: x86\@kernel.org
    Link: http://lkml.kernel.org/r/87fuv685kl.fsf@rustcorp.com.auSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    f87e0434
interrupts_and_traps.c 22.1 KB