diff options
author | Stephen Wilson <wilsons@start.ca> | 2011-03-13 15:49:15 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-03-23 16:36:54 -0400 |
commit | 31db58b3ab432f72ea76be58b12e6ffaf627d5db (patch) | |
tree | c88b742e1f2c52045d5abc6d35d7492ebdf64541 /arch/x86/mm | |
parent | 375906f8765e131a4a159b1ffebf78c15db7b3bf (diff) |
mm: arch: make get_gate_vma take an mm_struct instead of a task_struct
Morally, the presence of a gate vma is more an attribute of a particular mm than
a particular task. Moreover, dropping the dependency on task_struct will help
make both existing and future operations on mm's more flexible and convenient.
Signed-off-by: Stephen Wilson <wilsons@start.ca>
Reviewed-by: Michel Lespinasse <walken@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/x86/mm')
-rw-r--r-- | arch/x86/mm/init_64.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 0aa34669ed3..dd4809b5844 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -861,10 +861,10 @@ static struct vm_area_struct gate_vma = { | |||
861 | .vm_flags = VM_READ | VM_EXEC | 861 | .vm_flags = VM_READ | VM_EXEC |
862 | }; | 862 | }; |
863 | 863 | ||
864 | struct vm_area_struct *get_gate_vma(struct task_struct *tsk) | 864 | struct vm_area_struct *get_gate_vma(struct mm_struct *mm) |
865 | { | 865 | { |
866 | #ifdef CONFIG_IA32_EMULATION | 866 | #ifdef CONFIG_IA32_EMULATION |
867 | if (test_tsk_thread_flag(tsk, TIF_IA32)) | 867 | if (!mm || mm->context.ia32_compat) |
868 | return NULL; | 868 | return NULL; |
869 | #endif | 869 | #endif |
870 | return &gate_vma; | 870 | return &gate_vma; |
@@ -872,7 +872,7 @@ struct vm_area_struct *get_gate_vma(struct task_struct *tsk) | |||
872 | 872 | ||
873 | int in_gate_area(struct task_struct *task, unsigned long addr) | 873 | int in_gate_area(struct task_struct *task, unsigned long addr) |
874 | { | 874 | { |
875 | struct vm_area_struct *vma = get_gate_vma(task); | 875 | struct vm_area_struct *vma = get_gate_vma(task->mm); |
876 | 876 | ||
877 | if (!vma) | 877 | if (!vma) |
878 | return 0; | 878 | return 0; |