Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83b964bb authored by Stephen Wilson's avatar Stephen Wilson Committed by Al Viro
Browse files

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: default avatarStephen Wilson <wilsons@start.ca>
Reviewed-by: default avatarMichel 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: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 31db58b3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -825,7 +825,7 @@ int in_gate_area_no_task(unsigned long addr)
	return 0;
}

int in_gate_area(struct task_struct *task, unsigned long addr)
int in_gate_area(struct mm_struct *mm, unsigned long addr)
{
	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -342,7 +342,7 @@ int in_gate_area_no_task(unsigned long addr)
	return 0;
}

int in_gate_area(struct task_struct *task, unsigned long addr)
int in_gate_area(struct mm_struct *mm, unsigned long addr)
{
	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
	return NULL;
}

int in_gate_area(struct task_struct *task, unsigned long address)
int in_gate_area(struct mm_struct *mm, unsigned long address)
{
	return 0;
}
+2 −2
Original line number Diff line number Diff line
@@ -870,9 +870,9 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
	return &gate_vma;
}

int in_gate_area(struct task_struct *task, unsigned long addr)
int in_gate_area(struct mm_struct *mm, unsigned long addr)
{
	struct vm_area_struct *vma = get_gate_vma(task->mm);
	struct vm_area_struct *vma = get_gate_vma(mm);

	if (!vma)
		return 0;
+2 −2
Original line number Diff line number Diff line
@@ -428,9 +428,9 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
	return NULL;
}

int in_gate_area(struct task_struct *task, unsigned long addr)
int in_gate_area(struct mm_struct *mm, unsigned long addr)
{
	const struct vm_area_struct *vma = get_gate_vma(task->mm);
	const struct vm_area_struct *vma = get_gate_vma(mm);

	return vma && addr >= vma->vm_start && addr < vma->vm_end;
}
Loading