| From 69b0433a1072156dadb44aaccd2aee51181e01f1 Mon Sep 17 00:00:00 2001 |
| From: Stefan Bader <stefan.bader@canonical.com> |
| Date: Tue, 31 Aug 2010 15:52:27 +0200 |
| Subject: [PATCH] mm: Move vma_stack_continue into mm.h |
| |
| commit 39aa3cb3e8250db9188a6f1e3fb62ffa1a717678 upstream. |
| |
| So it can be used by all that need to check for that. |
| |
| Signed-off-by: Stefan Bader <stefan.bader@canonical.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| --- |
| fs/proc/task_mmu.c | 3 ++- |
| include/linux/mm.h | 6 ++++++ |
| mm/mlock.c | 6 ------ |
| 3 files changed, 8 insertions(+), 7 deletions(-) |
| |
| diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c |
| index 3544f60..971fd7a 100644 |
| --- a/fs/proc/task_mmu.c |
| +++ b/fs/proc/task_mmu.c |
| @@ -224,7 +224,8 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) |
| /* We don't show the stack guard page in /proc/maps */ |
| start = vma->vm_start; |
| if (vma->vm_flags & VM_GROWSDOWN) |
| - start += PAGE_SIZE; |
| + if (!vma_stack_continue(vma->vm_prev, vma->vm_start)) |
| + start += PAGE_SIZE; |
| |
| seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", |
| start, |
| diff --git a/include/linux/mm.h b/include/linux/mm.h |
| index 04fb7f6..433d7e2 100644 |
| --- a/include/linux/mm.h |
| +++ b/include/linux/mm.h |
| @@ -859,6 +859,12 @@ int set_page_dirty(struct page *page); |
| int set_page_dirty_lock(struct page *page); |
| int clear_page_dirty_for_io(struct page *page); |
| |
| +/* Is the vma a continuation of the stack vma above it? */ |
| +static inline int vma_stack_continue(struct vm_area_struct *vma, unsigned long addr) |
| +{ |
| + return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN); |
| +} |
| + |
| extern unsigned long move_page_tables(struct vm_area_struct *vma, |
| unsigned long old_addr, struct vm_area_struct *new_vma, |
| unsigned long new_addr, unsigned long len); |
| diff --git a/mm/mlock.c b/mm/mlock.c |
| index 5e57ebc..6fe7001 100644 |
| --- a/mm/mlock.c |
| +++ b/mm/mlock.c |
| @@ -135,12 +135,6 @@ void munlock_vma_page(struct page *page) |
| } |
| } |
| |
| -/* Is the vma a continuation of the stack vma above it? */ |
| -static inline int vma_stack_continue(struct vm_area_struct *vma, unsigned long addr) |
| -{ |
| - return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN); |
| -} |
| - |
| static inline int stack_guard_page(struct vm_area_struct *vma, unsigned long addr) |
| { |
| return (vma->vm_flags & VM_GROWSDOWN) && |
| -- |
| 1.7.0.4 |
| |