[PATCH] freepgt: arm FIRST_USER_ADDRESS PAGE_SIZE
ARM define FIRST_USER_ADDRESS as PAGE_SIZE (beyond the machine vectors when they are mapped low), and use that definition in place of locally defined MIN_MAP_ADDR. Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
8462e20175
commit
6119be0bba
@ -51,13 +51,6 @@ asmlinkage int sys_pipe(unsigned long __user *fildes)
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the lowest virtual address we can permit any user space
|
|
||||||
* mapping to be mapped at. This is particularly important for
|
|
||||||
* non-high vector CPUs.
|
|
||||||
*/
|
|
||||||
#define MIN_MAP_ADDR (PAGE_SIZE)
|
|
||||||
|
|
||||||
/* common code for old and new mmaps */
|
/* common code for old and new mmaps */
|
||||||
inline long do_mmap2(
|
inline long do_mmap2(
|
||||||
unsigned long addr, unsigned long len,
|
unsigned long addr, unsigned long len,
|
||||||
@ -69,7 +62,7 @@ inline long do_mmap2(
|
|||||||
|
|
||||||
flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
|
flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
|
||||||
|
|
||||||
if (flags & MAP_FIXED && addr < MIN_MAP_ADDR)
|
if (flags & MAP_FIXED && addr < FIRST_USER_ADDRESS)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
error = -EBADF;
|
error = -EBADF;
|
||||||
@ -122,7 +115,7 @@ sys_arm_mremap(unsigned long addr, unsigned long old_len,
|
|||||||
{
|
{
|
||||||
unsigned long ret = -EINVAL;
|
unsigned long ret = -EINVAL;
|
||||||
|
|
||||||
if (flags & MREMAP_FIXED && new_addr < MIN_MAP_ADDR)
|
if (flags & MREMAP_FIXED && new_addr < FIRST_USER_ADDRESS)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
down_write(¤t->mm->mmap_sem);
|
down_write(¤t->mm->mmap_sem);
|
||||||
|
@ -102,6 +102,13 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
|
|||||||
#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
|
#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
|
||||||
#define PGDIR_MASK (~(PGDIR_SIZE-1))
|
#define PGDIR_MASK (~(PGDIR_SIZE-1))
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the lowest virtual address we can permit any user space
|
||||||
|
* mapping to be mapped at. This is particularly important for
|
||||||
|
* non-high vector CPUs.
|
||||||
|
*/
|
||||||
|
#define FIRST_USER_ADDRESS PAGE_SIZE
|
||||||
|
|
||||||
#define FIRST_USER_PGD_NR 1
|
#define FIRST_USER_PGD_NR 1
|
||||||
#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR)
|
#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user