From: Hugh Dickins Date: Tue, 19 Apr 2005 20:29:21 +0000 (-0700) Subject: [PATCH] freepgt: arm FIRST_USER_ADDRESS PAGE_SIZE X-Git-Tag: v2.6.12-rc3~14 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6119be0bba10e7e7b1e5650a87812fa2fd8d3a60;p=linux-2.6 [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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index c41dc605f1..7ba6342cf9 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c @@ -51,13 +51,6 @@ asmlinkage int sys_pipe(unsigned long __user *fildes) 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 */ inline long do_mmap2( unsigned long addr, unsigned long len, @@ -69,7 +62,7 @@ inline long do_mmap2( flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); - if (flags & MAP_FIXED && addr < MIN_MAP_ADDR) + if (flags & MAP_FIXED && addr < FIRST_USER_ADDRESS) goto out; error = -EBADF; @@ -122,7 +115,7 @@ sys_arm_mremap(unsigned long addr, unsigned long old_len, { unsigned long ret = -EINVAL; - if (flags & MREMAP_FIXED && new_addr < MIN_MAP_ADDR) + if (flags & MREMAP_FIXED && new_addr < FIRST_USER_ADDRESS) goto out; down_write(¤t->mm->mmap_sem); diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h index 91ffb1f4cd..2df4eacf4f 100644 --- a/include/asm-arm/pgtable.h +++ b/include/asm-arm/pgtable.h @@ -102,6 +102,13 @@ extern void __pgd_error(const char *file, int line, unsigned long val); #define PGDIR_SIZE (1UL << PGDIR_SHIFT) #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 USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR)