linux/include
Zachary Amsden a520112930 [PATCH] x86: make IOPL explicit
The pushf/popf in switch_to are ONLY used to switch IOPL.  Making this
explicit in C code is more clear.  This pushf/popf pair was added as a
bugfix for leaking IOPL to unprivileged processes when using
sysenter/sysexit based system calls (sysexit does not restore flags).

When requesting an IOPL change in sys_iopl(), it is just as easy to change
the current flags and the flags in the stack image (in case an IRET is
required), but there is no reason to force an IRET if we came in from the
SYSENTER path.

This change is the minimal solution for supporting a paravirtualized Linux
kernel that allows user processes to run with I/O privilege.  Other
solutions require radical rewrites of part of the low level fault / system
call handling code, or do not fully support sysenter based system calls.

Unfortunately, this added one field to the thread_struct.  But as a bonus,
on P4, the fastest time measured for switch_to() went from 312 to 260
cycles, a win of about 17% in the fast case through this performance
critical path.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-05 00:06:12 -07:00
..
acpi /home/lenb/src/to-linus branch 'acpi-2.6.12' 2005-07-29 23:31:17 -04:00
asm-alpha [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-arm [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-arm26 [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-cris [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-frv [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-generic [PATCH] x86: ptep_clear optimization 2005-09-05 00:05:48 -07:00
asm-h8300 [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-i386 [PATCH] x86: make IOPL explicit 2005-09-05 00:06:12 -07:00
asm-ia64 [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-m32r [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-m68k [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-m68knommu [PATCH] mm: consolidate get_order 2005-09-05 00:05:39 -07:00
asm-mips [PATCH] mips: remove timex.h for vr41xx 2005-09-05 00:06:08 -07:00
asm-parisc [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-powerpc [PATCH] Move all the very similar files to asm-powerpc 2005-08-30 13:32:06 +10:00
asm-ppc [PATCH] ppc32: mv64x60 updates & enhancements 2005-09-05 00:06:00 -07:00
asm-ppc64 [PATCH] ppc64: Add VMX save flag to VPA 2005-09-05 00:06:01 -07:00
asm-s390 [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-sh [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-sh64 [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-sparc [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-sparc64 [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-um [PATCH] mm: correct _PAGE_FILE comment 2005-09-05 00:05:45 -07:00
asm-v850 [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
asm-x86_64 [PATCH] i386: cleanup serialize msr 2005-09-05 00:06:11 -07:00
asm-xtensa [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
linux [PATCH] x86: fix EFI memory map parsing 2005-09-05 00:06:09 -07:00
math-emu Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
media [PATCH] V4L: Miscellaneous fixes 2005-08-01 19:13:59 -07:00
mtd [MTD] NAND: Honour autoplacement schemes supplied by the caller 2005-05-23 13:20:45 +02:00
net /spare/repo/netdev-2.6 branch 'master' 2005-09-01 18:02:01 -04:00
pcmcia [PATCH] pcmcia: fix pcmcia-cs compilation 2005-07-12 16:00:59 -07:00
rdma [PATCH] IB: move include files to include/rdma 2005-08-26 20:37:38 -07:00
rxrpc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scsi [SCSI] fix target scanning oops with fc transport class 2005-08-08 17:14:55 -05:00
sound [ALSA] version 1.0.10rc1 2005-08-30 08:48:35 +02:00
video [PATCH] DEC PMAGB B framebuffer update 2005-09-05 00:06:03 -07:00