summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/vm86.h
diff options
context:
space:
mode:
authorBrian Gerst <brgerst@gmail.com>2015-07-29 07:41:16 +0200
committerIngo Molnar <mingo@kernel.org>2015-07-31 13:31:07 +0200
commit9fda6a0681e070b496235b132bc70ceb80300211 (patch)
treea416276cb23718f38a897884abd75c6790b590d7 /arch/x86/include/asm/vm86.h
parentselftests/x86/vm86: Fix entry_from_vm86 test on 64-bit kernels (diff)
downloadlinux-9fda6a0681e070b496235b132bc70ceb80300211.tar.xz
linux-9fda6a0681e070b496235b132bc70ceb80300211.zip
x86/vm86: Move vm86 fields out of 'thread_struct'
Allocate a separate structure for the vm86 fields. Signed-off-by: Brian Gerst <brgerst@gmail.com> Acked-by: Andy Lutomirski <luto@kernel.org> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1438148483-11932-2-git-send-email-brgerst@gmail.com [ Build fixes. ] Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/include/asm/vm86.h')
-rw-r--r--arch/x86/include/asm/vm86.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/arch/x86/include/asm/vm86.h b/arch/x86/include/asm/vm86.h
index 1d8de3f3feca..20b43b7a950b 100644
--- a/arch/x86/include/asm/vm86.h
+++ b/arch/x86/include/asm/vm86.h
@@ -1,7 +1,6 @@
#ifndef _ASM_X86_VM86_H
#define _ASM_X86_VM86_H
-
#include <asm/ptrace.h>
#include <uapi/asm/vm86.h>
@@ -58,6 +57,14 @@ struct kernel_vm86_struct {
*/
};
+struct vm86 {
+ struct vm86plus_struct __user *vm86_info;
+ unsigned long screen_bitmap;
+ unsigned long v86flags;
+ unsigned long v86mask;
+ unsigned long saved_sp0;
+};
+
#ifdef CONFIG_VM86
void handle_vm86_fault(struct kernel_vm86_regs *, long);
@@ -67,6 +74,14 @@ struct pt_regs *save_v86_state(struct kernel_vm86_regs *);
struct task_struct;
void release_vm86_irqs(struct task_struct *);
+#define free_vm86(t) do { \
+ struct thread_struct *__t = (t); \
+ if (__t->vm86 != NULL) { \
+ kfree(__t->vm86); \
+ __t->vm86 = NULL; \
+ } \
+} while (0)
+
#else
#define handle_vm86_fault(a, b)
@@ -77,6 +92,8 @@ static inline int handle_vm86_trap(struct kernel_vm86_regs *a, long b, int c)
return 0;
}
+#define free_vm86(t) do { } while(0)
+
#endif /* CONFIG_VM86 */
#endif /* _ASM_X86_VM86_H */