arch_rebalance_pgtables call
In order to change the layout of the page tables after an mmap has crossed the adress space limit of the current page table layout a architecture hook in get_unmapped_area is needed. The arguments are the address of the new mapping and the length of it. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5e5419734c
commit
08e7d9b557
|
@ -36,6 +36,10 @@
|
||||||
#define arch_mmap_check(addr, len, flags) (0)
|
#define arch_mmap_check(addr, len, flags) (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef arch_rebalance_pgtables
|
||||||
|
#define arch_rebalance_pgtables(addr, len) (addr)
|
||||||
|
#endif
|
||||||
|
|
||||||
static void unmap_region(struct mm_struct *mm,
|
static void unmap_region(struct mm_struct *mm,
|
||||||
struct vm_area_struct *vma, struct vm_area_struct *prev,
|
struct vm_area_struct *vma, struct vm_area_struct *prev,
|
||||||
unsigned long start, unsigned long end);
|
unsigned long start, unsigned long end);
|
||||||
|
@ -1424,7 +1428,7 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
|
||||||
if (addr & ~PAGE_MASK)
|
if (addr & ~PAGE_MASK)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
return addr;
|
return arch_rebalance_pgtables(addr, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(get_unmapped_area);
|
EXPORT_SYMBOL(get_unmapped_area);
|
||||||
|
|
Loading…
Reference in New Issue