Browse Source

[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>
Hugh Dickins 20 years ago
parent
commit
6119be0bba
2 changed files with 9 additions and 9 deletions
  1. 2 9
      arch/arm/kernel/sys_arm.c
  2. 7 0
      include/asm-arm/pgtable.h

+ 2 - 9
arch/arm/kernel/sys_arm.c

@@ -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(&current->mm->mmap_sem);
 	down_write(&current->mm->mmap_sem);

+ 7 - 0
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_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)