Commit 83b964bbf82eb13a8f31bb49ca420787fe01f7a6

Authored by Stephen Wilson
Committed by Al Viro
1 parent 31db58b3ab

mm: arch: make in_gate_area take an mm_struct instead of a task_struct

Morally, the question of whether an address lies in a gate vma should be asked
with respect to an mm, not a particular task.  Moreover, dropping the dependency
on task_struct will help make 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>

Showing 7 changed files with 10 additions and 10 deletions Side-by-side Diff

arch/powerpc/kernel/vdso.c
... ... @@ -825,7 +825,7 @@
825 825 return 0;
826 826 }
827 827  
828   -int in_gate_area(struct task_struct *task, unsigned long addr)
  828 +int in_gate_area(struct mm_struct *mm, unsigned long addr)
829 829 {
830 830 return 0;
831 831 }
arch/s390/kernel/vdso.c
... ... @@ -342,7 +342,7 @@
342 342 return 0;
343 343 }
344 344  
345   -int in_gate_area(struct task_struct *task, unsigned long addr)
  345 +int in_gate_area(struct mm_struct *mm, unsigned long addr)
346 346 {
347 347 return 0;
348 348 }
arch/sh/kernel/vsyscall/vsyscall.c
... ... @@ -99,7 +99,7 @@
99 99 return NULL;
100 100 }
101 101  
102   -int in_gate_area(struct task_struct *task, unsigned long address)
  102 +int in_gate_area(struct mm_struct *mm, unsigned long address)
103 103 {
104 104 return 0;
105 105 }
arch/x86/mm/init_64.c
... ... @@ -870,9 +870,9 @@
870 870 return &gate_vma;
871 871 }
872 872  
873   -int in_gate_area(struct task_struct *task, unsigned long addr)
  873 +int in_gate_area(struct mm_struct *mm, unsigned long addr)
874 874 {
875   - struct vm_area_struct *vma = get_gate_vma(task->mm);
  875 + struct vm_area_struct *vma = get_gate_vma(mm);
876 876  
877 877 if (!vma)
878 878 return 0;
arch/x86/vdso/vdso32-setup.c
... ... @@ -428,9 +428,9 @@
428 428 return NULL;
429 429 }
430 430  
431   -int in_gate_area(struct task_struct *task, unsigned long addr)
  431 +int in_gate_area(struct mm_struct *mm, unsigned long addr)
432 432 {
433   - const struct vm_area_struct *vma = get_gate_vma(task->mm);
  433 + const struct vm_area_struct *vma = get_gate_vma(mm);
434 434  
435 435 return vma && addr >= vma->vm_start && addr < vma->vm_end;
436 436 }
... ... @@ -1581,10 +1581,10 @@
1581 1581 extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm);
1582 1582 #ifdef __HAVE_ARCH_GATE_AREA
1583 1583 int in_gate_area_no_task(unsigned long addr);
1584   -int in_gate_area(struct task_struct *task, unsigned long addr);
  1584 +int in_gate_area(struct mm_struct *mm, unsigned long addr);
1585 1585 #else
1586 1586 int in_gate_area_no_task(unsigned long addr);
1587   -#define in_gate_area(task, addr) ({(void)task; in_gate_area_no_task(addr);})
  1587 +#define in_gate_area(mm, addr) ({(void)mm; in_gate_area_no_task(addr);})
1588 1588 #endif /* __HAVE_ARCH_GATE_AREA */
1589 1589  
1590 1590 int drop_caches_sysctl_handler(struct ctl_table *, int,
... ... @@ -1486,7 +1486,7 @@
1486 1486 struct vm_area_struct *vma;
1487 1487  
1488 1488 vma = find_extend_vma(mm, start);
1489   - if (!vma && in_gate_area(tsk, start)) {
  1489 + if (!vma && in_gate_area(tsk->mm, start)) {
1490 1490 unsigned long pg = start & PAGE_MASK;
1491 1491 struct vm_area_struct *gate_vma = get_gate_vma(tsk->mm);
1492 1492 pgd_t *pgd;