1
linux/include
Jeremy Fitzhardinge f95d47caae [PATCH] i386: Use %gs as the PDA base-segment in the kernel
This patch is the meat of the PDA change.  This patch makes several related
changes:

1: Most significantly, %gs is now used in the kernel.  This means that on
   entry, the old value of %gs is saved away, and it is reloaded with
   __KERNEL_PDA.

2: entry.S constructs the stack in the shape of struct pt_regs, and this
   is passed around the kernel so that the process's saved register
   state can be accessed.

   Unfortunately struct pt_regs doesn't currently have space for %gs
   (or %fs). This patch extends pt_regs to add space for gs (no space
   is allocated for %fs, since it won't be used, and it would just
   complicate the code in entry.S to work around the space).

3: Because %gs is now saved on the stack like %ds, %es and the integer
   registers, there are a number of places where it no longer needs to
   be handled specially; namely context switch, and saving/restoring the
   register state in a signal context.

4: And since kernel threads run in kernel space and call normal kernel
   code, they need to be created with their %gs == __KERNEL_PDA.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Chuck Ebbert <76306.1226@compuserve.com>
Cc: Zachary Amsden <zach@vmware.com>
Cc: Jan Beulich <jbeulich@novell.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
2006-12-07 02:14:02 +01:00
..
acpi ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
asm-alpha [NET]: Alpha checksum annotations and cleanups. 2006-12-02 21:23:01 -08:00
asm-arm Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev 2006-12-04 13:12:29 -08:00
asm-arm26 [NET]: ARM26 checksum annotations and cleanups. 2006-12-02 21:23:16 -08:00
asm-avr32 [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
asm-cris [NET]: Cris checksum annotations and cleanups. 2006-12-02 21:23:02 -08:00
asm-frv [NET]: FRV checksum annotations. 2006-12-02 21:23:03 -08:00
asm-generic Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-h8300 [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
asm-i386 [PATCH] i386: Use %gs as the PDA base-segment in the kernel 2006-12-07 02:14:02 +01:00
asm-ia64 [NET]: IA64 checksum annotations and cleanups. 2006-12-02 21:23:05 -08:00
asm-m32r [NET]: M32R checksum annotations and cleanups. 2006-12-02 21:23:06 -08:00
asm-m68k [NET]: M68K checksum annotations and cleanups. 2006-12-02 21:23:07 -08:00
asm-m68knommu [PATCH] m68knommu: fix missing bracket in scatterlist.h 2006-12-04 08:28:47 -08:00
asm-mips [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
asm-parisc [NET]: PARISC checksum annotations and cleanups. 2006-12-02 21:23:10 -08:00
asm-powerpc [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
asm-ppc [POWERPC] ppc: m48t35 add missing bracket 2006-12-04 20:42:04 +11:00
asm-s390 [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
asm-sh [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
asm-sh64 [NET]: SH64 checksum annotations and cleanups. 2006-12-02 21:23:11 -08:00
asm-sparc [NET]: SPARC checksum annotations and cleanups. 2006-12-02 21:23:22 -08:00
asm-sparc64 [NET]: SPARC64 checksum annotations and cleanups. 2006-12-02 21:23:23 -08:00
asm-um Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-v850 [NET]: V850 checksum annotations and cleanups. 2006-12-02 21:23:13 -08:00
asm-x86_64 [PATCH] x86-64: x86-64 add Intel Core related PMU MSRs definitions 2006-12-07 02:14:02 +01:00
asm-xtensa [NET]: XTENSA checksum annotations and cleanups. 2006-12-02 21:23:24 -08:00
crypto
keys
linux [PATCH] x86: all cpu backtrace 2006-12-07 02:14:01 +01:00
math-emu
media
mtd
net [PATCH] severing skbuff.h -> mm.h 2006-12-04 02:00:34 -05:00
pcmcia [PATCH] pcmcia: multifunction card handling fixes 2006-12-04 20:09:15 -05:00
rdma IB/cm: Fix automatic path migration support 2006-11-29 15:33:10 -08:00
rxrpc
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2006-12-05 16:09:46 -08:00
sound [PATCH] severing poll.h -> mm.h 2006-12-04 02:00:36 -05:00
video
Kbuild