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 /fs | |
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 'fs')
-rw-r--r-- | fs/binfmt_elf.c | 2 | ||||
-rw-r--r-- | fs/proc/task_mmu.c | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index d5b640ba6cb1..bbabdcce1179 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -1906,7 +1906,7 @@ static int elf_core_dump(struct coredump_params *cprm) | |||
1906 | segs = current->mm->map_count; | 1906 | segs = current->mm->map_count; |
1907 | segs += elf_core_extra_phdrs(); | 1907 | segs += elf_core_extra_phdrs(); |
1908 | 1908 | ||
1909 | gate_vma = get_gate_vma(current); | 1909 | gate_vma = get_gate_vma(current->mm); |
1910 | if (gate_vma != NULL) | 1910 | if (gate_vma != NULL) |
1911 | segs++; | 1911 | segs++; |
1912 | 1912 | ||
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 8fed0f88fbf7..e73314afc535 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
@@ -126,7 +126,7 @@ static void *m_start(struct seq_file *m, loff_t *pos) | |||
126 | return mm; | 126 | return mm; |
127 | down_read(&mm->mmap_sem); | 127 | down_read(&mm->mmap_sem); |
128 | 128 | ||
129 | tail_vma = get_gate_vma(priv->task); | 129 | tail_vma = get_gate_vma(priv->task->mm); |
130 | priv->tail_vma = tail_vma; | 130 | priv->tail_vma = tail_vma; |
131 | 131 | ||
132 | /* Start with last addr hint */ | 132 | /* Start with last addr hint */ |
@@ -277,7 +277,8 @@ static int show_map(struct seq_file *m, void *v) | |||
277 | show_map_vma(m, vma); | 277 | show_map_vma(m, vma); |
278 | 278 | ||
279 | if (m->count < m->size) /* vma is copied successfully */ | 279 | if (m->count < m->size) /* vma is copied successfully */ |
280 | m->version = (vma != get_gate_vma(task))? vma->vm_start: 0; | 280 | m->version = (vma != get_gate_vma(task->mm)) |
281 | ? vma->vm_start : 0; | ||
281 | return 0; | 282 | return 0; |
282 | } | 283 | } |
283 | 284 | ||
@@ -436,7 +437,8 @@ static int show_smap(struct seq_file *m, void *v) | |||
436 | (unsigned long)(mss.pss >> (10 + PSS_SHIFT)) : 0); | 437 | (unsigned long)(mss.pss >> (10 + PSS_SHIFT)) : 0); |
437 | 438 | ||
438 | if (m->count < m->size) /* vma is copied successfully */ | 439 | if (m->count < m->size) /* vma is copied successfully */ |
439 | m->version = (vma != get_gate_vma(task)) ? vma->vm_start : 0; | 440 | m->version = (vma != get_gate_vma(task->mm)) |
441 | ? vma->vm_start : 0; | ||
440 | return 0; | 442 | return 0; |
441 | } | 443 | } |
442 | 444 | ||