From ea633e0e86d888d9e669e0e957d02db98dc373f6 Mon Sep 17 00:00:00 2001 From: Hugh Dickins Date: Tue, 19 Apr 2005 13:29:22 -0700 Subject: [PATCH] --- yaml --- r: 327 b: refs/heads/master c: cdfb82fff33cf3b1a367a427e5d89a012dc568b1 h: refs/heads/master i: 325: 4890948627e9b3fd6222c83f4e6597082591cce0 323: de0ea23fd883dee2a233e2b1c5267e1d7592486b 319: 3b729a562d5300da28fae22a47e86386548e9533 v: v3 --- [refs] | 2 +- trunk/arch/arm26/kernel/sys_arm.c | 9 ++++----- trunk/include/asm-arm26/pgtable.h | 7 +++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 08ac1f83e445..83b6f38eff1e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6119be0bba10e7e7b1e5650a87812fa2fd8d3a60 +refs/heads/master: cdfb82fff33cf3b1a367a427e5d89a012dc568b1 diff --git a/trunk/arch/arm26/kernel/sys_arm.c b/trunk/arch/arm26/kernel/sys_arm.c index e7edd201579a..85457897b8a9 100644 --- a/trunk/arch/arm26/kernel/sys_arm.c +++ b/trunk/arch/arm26/kernel/sys_arm.c @@ -64,10 +64,10 @@ inline long do_mmap2( flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); /* - * If we are doing a fixed mapping, and address < PAGE_SIZE, + * If we are doing a fixed mapping, and address < FIRST_USER_ADDRESS, * then deny it. */ - if (flags & MAP_FIXED && addr < PAGE_SIZE && vectors_base() == 0) + if (flags & MAP_FIXED && addr < FIRST_USER_ADDRESS) goto out; error = -EBADF; @@ -121,11 +121,10 @@ sys_arm_mremap(unsigned long addr, unsigned long old_len, unsigned long ret = -EINVAL; /* - * If we are doing a fixed mapping, and address < PAGE_SIZE, + * If we are doing a fixed mapping, and address < FIRST_USER_ADDRESS, * then deny it. */ - if (flags & MREMAP_FIXED && new_addr < PAGE_SIZE && - vectors_base() == 0) + if (flags & MREMAP_FIXED && new_addr < FIRST_USER_ADDRESS) goto out; down_write(¤t->mm->mmap_sem); diff --git a/trunk/include/asm-arm26/pgtable.h b/trunk/include/asm-arm26/pgtable.h index af0b8907dc14..4a0a00da425f 100644 --- a/trunk/include/asm-arm26/pgtable.h +++ b/trunk/include/asm-arm26/pgtable.h @@ -62,6 +62,13 @@ #define PTRS_PER_PMD 1 #define PTRS_PER_PTE 32 +/* + * 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/PGD_SIZE) - FIRST_USER_PGD_NR)