diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2006-12-06 20:14:02 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:02 -0500 |
commit | 66e10a44d724f1464b5e8b5a3eae1e2cbbc2cca6 (patch) | |
tree | 0d2a1a1d5edaf98506ef7cb271cad62f5644268e /include/asm-i386 | |
parent | f95d47caae5302a63d92be9a0292abc90e2a14e1 (diff) |
[PATCH] i386: Fix places where using %gs changes the usermode ABI
There are a few places where the change in struct pt_regs and the use of %gs
affect the userspace ABI. These are primarily debugging interfaces where
thread state can be inspected or extracted.
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>
Diffstat (limited to 'include/asm-i386')
-rw-r--r-- | include/asm-i386/elf.h | 2 | ||||
-rw-r--r-- | include/asm-i386/unwind.h | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/include/asm-i386/elf.h b/include/asm-i386/elf.h index 3a05436f31c0..45d21a0c95bf 100644 --- a/include/asm-i386/elf.h +++ b/include/asm-i386/elf.h | |||
@@ -91,7 +91,7 @@ typedef struct user_fxsr_struct elf_fpxregset_t; | |||
91 | pr_reg[7] = regs->xds; \ | 91 | pr_reg[7] = regs->xds; \ |
92 | pr_reg[8] = regs->xes; \ | 92 | pr_reg[8] = regs->xes; \ |
93 | savesegment(fs,pr_reg[9]); \ | 93 | savesegment(fs,pr_reg[9]); \ |
94 | savesegment(gs,pr_reg[10]); \ | 94 | pr_reg[10] = regs->xgs; \ |
95 | pr_reg[11] = regs->orig_eax; \ | 95 | pr_reg[11] = regs->orig_eax; \ |
96 | pr_reg[12] = regs->eip; \ | 96 | pr_reg[12] = regs->eip; \ |
97 | pr_reg[13] = regs->xcs; \ | 97 | pr_reg[13] = regs->xcs; \ |
diff --git a/include/asm-i386/unwind.h b/include/asm-i386/unwind.h index 5031d693b89d..601fc67bd775 100644 --- a/include/asm-i386/unwind.h +++ b/include/asm-i386/unwind.h | |||
@@ -71,6 +71,7 @@ static inline void arch_unw_init_blocked(struct unwind_frame_info *info) | |||
71 | info->regs.xss = __KERNEL_DS; | 71 | info->regs.xss = __KERNEL_DS; |
72 | info->regs.xds = __USER_DS; | 72 | info->regs.xds = __USER_DS; |
73 | info->regs.xes = __USER_DS; | 73 | info->regs.xes = __USER_DS; |
74 | info->regs.xgs = __KERNEL_PDA; | ||
74 | } | 75 | } |
75 | 76 | ||
76 | extern asmlinkage int arch_unwind_init_running(struct unwind_frame_info *, | 77 | extern asmlinkage int arch_unwind_init_running(struct unwind_frame_info *, |