diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2006-12-06 20:14:03 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:03 -0500 |
commit | 49d26b6eaa8e970c8cf6e299e6ccba2474191bf5 (patch) | |
tree | 174f586b64652e06ce0de8f4db4f94a4eec456cc /include/asm-i386 | |
parent | 66e10a44d724f1464b5e8b5a3eae1e2cbbc2cca6 (diff) |
[PATCH] i386: Update sys_vm86 to cope with changed pt_regs and %gs usage
sys_vm86 uses a struct kernel_vm86_regs, which is identical to pt_regs, but
adds an extra space for all the segment registers. Previously this structure
was completely independent, so changes in pt_regs had to be reflected in
kernel_vm86_regs. This changes just embeds pt_regs in kernel_vm86_regs, and
makes the appropriate changes to vm86.c to deal with the new naming.
Also, since %gs is dealt with differently in the kernel, this change adjusts
vm86.c to reflect this.
While making these changes, I also cleaned up some frankly bizarre code which
was added when auditing was added to sys_vm86.
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>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Jason Baron <jbaron@redhat.com>
Cc: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'include/asm-i386')
-rw-r--r-- | include/asm-i386/vm86.h | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/include/asm-i386/vm86.h b/include/asm-i386/vm86.h index 952fd6957380..a5edf517b992 100644 --- a/include/asm-i386/vm86.h +++ b/include/asm-i386/vm86.h | |||
@@ -145,26 +145,13 @@ struct vm86plus_struct { | |||
145 | * at the end of the structure. Look at ptrace.h to see the "normal" | 145 | * at the end of the structure. Look at ptrace.h to see the "normal" |
146 | * setup. For user space layout see 'struct vm86_regs' above. | 146 | * setup. For user space layout see 'struct vm86_regs' above. |
147 | */ | 147 | */ |
148 | #include <asm/ptrace.h> | ||
148 | 149 | ||
149 | struct kernel_vm86_regs { | 150 | struct kernel_vm86_regs { |
150 | /* | 151 | /* |
151 | * normal regs, with special meaning for the segment descriptors.. | 152 | * normal regs, with special meaning for the segment descriptors.. |
152 | */ | 153 | */ |
153 | long ebx; | 154 | struct pt_regs pt; |
154 | long ecx; | ||
155 | long edx; | ||
156 | long esi; | ||
157 | long edi; | ||
158 | long ebp; | ||
159 | long eax; | ||
160 | long __null_ds; | ||
161 | long __null_es; | ||
162 | long orig_eax; | ||
163 | long eip; | ||
164 | unsigned short cs, __csh; | ||
165 | long eflags; | ||
166 | long esp; | ||
167 | unsigned short ss, __ssh; | ||
168 | /* | 155 | /* |
169 | * these are specific to v86 mode: | 156 | * these are specific to v86 mode: |
170 | */ | 157 | */ |