aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/process.c
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2006-12-06 20:14:02 -0500
committerAndi Kleen <andi@basil.nowhere.org>2006-12-06 20:14:02 -0500
commit66e10a44d724f1464b5e8b5a3eae1e2cbbc2cca6 (patch)
tree0d2a1a1d5edaf98506ef7cb271cad62f5644268e /arch/i386/kernel/process.c
parentf95d47caae5302a63d92be9a0292abc90e2a14e1 (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 'arch/i386/kernel/process.c')
-rw-r--r--arch/i386/kernel/process.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c
index 905364d42847..dc4272545179 100644
--- a/arch/i386/kernel/process.c
+++ b/arch/i386/kernel/process.c
@@ -315,8 +315,8 @@ void show_regs(struct pt_regs * regs)
315 regs->eax,regs->ebx,regs->ecx,regs->edx); 315 regs->eax,regs->ebx,regs->ecx,regs->edx);
316 printk("ESI: %08lx EDI: %08lx EBP: %08lx", 316 printk("ESI: %08lx EDI: %08lx EBP: %08lx",
317 regs->esi, regs->edi, regs->ebp); 317 regs->esi, regs->edi, regs->ebp);
318 printk(" DS: %04x ES: %04x\n", 318 printk(" DS: %04x ES: %04x GS: %04x\n",
319 0xffff & regs->xds,0xffff & regs->xes); 319 0xffff & regs->xds,0xffff & regs->xes, 0xffff & regs->xgs);
320 320
321 cr0 = read_cr0(); 321 cr0 = read_cr0();
322 cr2 = read_cr2(); 322 cr2 = read_cr2();
@@ -509,7 +509,7 @@ void dump_thread(struct pt_regs * regs, struct user * dump)
509 dump->regs.ds = regs->xds; 509 dump->regs.ds = regs->xds;
510 dump->regs.es = regs->xes; 510 dump->regs.es = regs->xes;
511 savesegment(fs,dump->regs.fs); 511 savesegment(fs,dump->regs.fs);
512 savesegment(gs,dump->regs.gs); 512 dump->regs.gs = regs->xgs;
513 dump->regs.orig_eax = regs->orig_eax; 513 dump->regs.orig_eax = regs->orig_eax;
514 dump->regs.eip = regs->eip; 514 dump->regs.eip = regs->eip;
515 dump->regs.cs = regs->xcs; 515 dump->regs.cs = regs->xcs;