linux/arch/i386
Rusty Russell 78be3706b2 [PATCH] i386: Allow a kernel not to be in ring 0
We allow for the fact that the guest kernel may not run in ring 0.  This
requires some abstraction in a few places when setting %cs or checking
privilege level (user vs kernel).

This is Chris' [RFC PATCH 15/33] move segment checks to subarch, except rather
than using #define USER_MODE_MASK which depends on a config option, we use
Zach's more flexible approach of assuming ring 3 == userspace.  I also used
"get_kernel_rpl()" over "get_kernel_cs()" because I think it reads better in
the code...

1) Remove the hardcoded 3 and introduce #define SEGMENT_RPL_MASK 3 2) Add a
get_kernel_rpl() macro, and don't assume it's zero.

And:

Clean up of patch for letting kernel run other than ring 0:

a. Add some comments about the SEGMENT_IS_*_CODE() macros.
b. Add a USER_RPL macro.  (Code was comparing a value to a mask
   in some places and to the magic number 3 in other places.)
c. Add macros for table indicator field and use them.
d. Change the entry.S tests for LDT stack segment to use the macros

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
2006-09-26 10:52:39 +02:00
..
boot [PATCH] i386: Fix the EDD code misparsing the command line 2006-09-26 10:52:38 +02:00
crypto [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
kernel [PATCH] i386: Allow a kernel not to be in ring 0 2006-09-26 10:52:39 +02:00
lib [PATCH] i386: Remove lock section support in rwsem.h 2006-09-26 10:52:31 +02:00
mach-default [PATCH] irq-flags: i386: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
mach-es7000 [PATCH] Compilation fix for ES7000 when no ACPI is specified in config (i386) 2006-03-23 07:38:04 -08:00
mach-generic [PATCH] i386: Replace i386 open-coded cmdline parsing with 2006-09-26 10:52:32 +02:00
mach-visws [PATCH] irq-flags: i386: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
mach-voyager [PATCH] irq-flags: i386: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
math-emu [PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management 2005-09-05 00:06:11 -07:00
mm [PATCH] i386: Allow a kernel not to be in ring 0 2006-09-26 10:52:39 +02:00
oprofile [PATCH] i386: make functions static 2006-09-26 10:52:27 +02:00
pci Revert mmiocfg heuristics and blacklist changes 2006-09-19 08:15:22 -07:00
power Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
defconfig [PATCH] i386: Update defconfig 2006-09-26 10:52:26 +02:00
Kconfig [PATCH] i386/x86-64: Improve Kconfig description of CRASH_DUMP 2006-09-26 10:52:35 +02:00
Kconfig.cpu i386: Trivial typo fixes 2006-06-26 18:47:15 +02:00
Kconfig.debug [PATCH] lockdep: irqtrace subsystem, i386 support 2006-07-03 15:27:03 -07:00
Makefile [PATCH] x86: Detect CFI support in the assembler at runtime 2006-09-26 10:52:30 +02:00
Makefile.cpu [PATCH] x86-64: Use -mtune=generic for generic kernels 2006-03-25 09:10:52 -08:00