diff options
author | Hugh Dickins <hugh@veritas.com> | 2005-04-19 16:29:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org.(none)> | 2005-04-19 16:29:21 -0400 |
commit | 6119be0bba10e7e7b1e5650a87812fa2fd8d3a60 (patch) | |
tree | 5acc21e0611f1caf7163c120ca4214b2ee452b0d | |
parent | 8462e201756dd3bbe7e542106fc6fd6fe059cee2 (diff) |
[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>
-rw-r--r-- | arch/arm/kernel/sys_arm.c | 11 | ||||
-rw-r--r-- | include/asm-arm/pgtable.h | 7 |
2 files changed, 9 insertions, 9 deletions
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index c41dc605f121..7ba6342cf93d 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) | |||
51 | return error; | 51 | return error; |
52 | } | 52 | } |
53 | 53 | ||
54 | /* | ||
55 | * This is the lowest virtual address we can permit any user space | ||
56 | * mapping to be mapped at. This is particularly important for | ||
57 | * non-high vector CPUs. | ||
58 | */ | ||
59 | #define MIN_MAP_ADDR (PAGE_SIZE) | ||
60 | |||
61 | /* common code for old and new mmaps */ | 54 | /* common code for old and new mmaps */ |
62 | inline long do_mmap2( | 55 | inline long do_mmap2( |
63 | unsigned long addr, unsigned long len, | 56 | unsigned long addr, unsigned long len, |
@@ -69,7 +62,7 @@ inline long do_mmap2( | |||
69 | 62 | ||
70 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | 63 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); |
71 | 64 | ||
72 | if (flags & MAP_FIXED && addr < MIN_MAP_ADDR) | 65 | if (flags & MAP_FIXED && addr < FIRST_USER_ADDRESS) |
73 | goto out; | 66 | goto out; |
74 | 67 | ||
75 | error = -EBADF; | 68 | error = -EBADF; |
@@ -122,7 +115,7 @@ sys_arm_mremap(unsigned long addr, unsigned long old_len, | |||
122 | { | 115 | { |
123 | unsigned long ret = -EINVAL; | 116 | unsigned long ret = -EINVAL; |
124 | 117 | ||
125 | if (flags & MREMAP_FIXED && new_addr < MIN_MAP_ADDR) | 118 | if (flags & MREMAP_FIXED && new_addr < FIRST_USER_ADDRESS) |
126 | goto out; | 119 | goto out; |
127 | 120 | ||
128 | down_write(¤t->mm->mmap_sem); | 121 | down_write(¤t->mm->mmap_sem); |
diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h index 91ffb1f4cd10..2df4eacf4fa9 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); | |||
102 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | 102 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) |
103 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) | 103 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) |
104 | 104 | ||
105 | /* | ||
106 | * This is the lowest virtual address we can permit any user space | ||
107 | * mapping to be mapped at. This is particularly important for | ||
108 | * non-high vector CPUs. | ||
109 | */ | ||
110 | #define FIRST_USER_ADDRESS PAGE_SIZE | ||
111 | |||
105 | #define FIRST_USER_PGD_NR 1 | 112 | #define FIRST_USER_PGD_NR 1 |
106 | #define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR) | 113 | #define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR) |
107 | 114 | ||