mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-07 14:32:23 +00:00
mm: Move vma_stack_continue into mm.h
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>
This commit is contained in:
parent
26a94e81de
commit
39aa3cb3e8
@ -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 */
|
/* We don't show the stack guard page in /proc/maps */
|
||||||
start = vma->vm_start;
|
start = vma->vm_start;
|
||||||
if (vma->vm_flags & VM_GROWSDOWN)
|
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",
|
seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n",
|
||||||
start,
|
start,
|
||||||
|
@ -864,6 +864,12 @@ int set_page_dirty(struct page *page);
|
|||||||
int set_page_dirty_lock(struct page *page);
|
int set_page_dirty_lock(struct page *page);
|
||||||
int clear_page_dirty_for_io(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,
|
extern unsigned long move_page_tables(struct vm_area_struct *vma,
|
||||||
unsigned long old_addr, struct vm_area_struct *new_vma,
|
unsigned long old_addr, struct vm_area_struct *new_vma,
|
||||||
unsigned long new_addr, unsigned long len);
|
unsigned long new_addr, unsigned long len);
|
||||||
|
@ -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)
|
static inline int stack_guard_page(struct vm_area_struct *vma, unsigned long addr)
|
||||||
{
|
{
|
||||||
return (vma->vm_flags & VM_GROWSDOWN) &&
|
return (vma->vm_flags & VM_GROWSDOWN) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user