linux/arch
Tejun Heo ccbeed3a05 x86: make lazy %gs optional on x86_32
Impact: pt_regs changed, lazy gs handling made optional, add slight
        overhead to SAVE_ALL, simplifies error_code path a bit

On x86_32, %gs hasn't been used by kernel and handled lazily.  pt_regs
doesn't have place for it and gs is saved/loaded only when necessary.
In preparation for stack protector support, this patch makes lazy %gs
handling optional by doing the followings.

* Add CONFIG_X86_32_LAZY_GS and place for gs in pt_regs.

* Save and restore %gs along with other registers in entry_32.S unless
  LAZY_GS.  Note that this unfortunately adds "pushl $0" on SAVE_ALL
  even when LAZY_GS.  However, it adds no overhead to common exit path
  and simplifies entry path with error code.

* Define different user_gs accessors depending on LAZY_GS and add
  lazy_save_gs() and lazy_load_gs() which are noop if !LAZY_GS.  The
  lazy_*_gs() ops are used to save, load and clear %gs lazily.

* Define ELF_CORE_COPY_KERNEL_REGS() which always read %gs directly.

xen and lguest changes need to be verified.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>

Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-02-10 00:42:00 +01:00
..
alpha Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
arm Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
avr32 eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
blackfin Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
cris Merge branch 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2009-01-14 19:58:40 -08:00
frv NOMMU: Make VMAs per MM as for MMU-mode linux 2009-01-08 12:04:47 +00:00
h8300 Merge branch 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2009-01-14 19:58:40 -08:00
ia64 Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
m32r eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
m68k m68knommu: remove the no longer used PCI support option 2009-01-27 16:42:02 +10:00
m68knommu m68knommu: fix 5329 ColdFire periphal addressing 2009-01-27 16:42:03 +10:00
mips Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
mn10300 Merge branch 'x86/mm' into core/percpu 2009-01-21 10:39:51 +01:00
parisc Merge branch 'linus' into core/percpu 2009-01-30 18:23:30 +01:00
powerpc Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
s390 [S390] Add missing compat system call wrappers. 2009-01-23 16:40:29 +01:00
sh sh: Fix up T-bit error handling in SH-4A mutex fastpath. 2009-01-29 11:56:03 +09:00
sparc Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
um mm: invoke oom-killer from page fault 2009-01-06 15:58:58 -08:00
x86 x86: make lazy %gs optional on x86_32 2009-02-10 00:42:00 +01:00
xtensa byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
.gitignore
Kconfig [CVE-2009-0029] System call wrapper infrastructure 2009-01-14 14:15:16 +01:00