kernel-fxtec-pro1x/arch/powerpc/mm
Paul Mackerras 08ae6cc15d [POWERPC] Allow exec faults on readable areas on classic 32-bit PowerPC
Classic 32-bit PowerPC CPUs, and the early 64-bit PowerPC CPUs, don't
provide a way to prevent execution from readable pages, that is, the
MMU doesn't distinguish between data reads and instruction reads,
although a different exception is taken for faults in data accesses
and instruction accesses.

Commit 9ba4ace39f, in the course of
fixing another bug, added a check that meant that a page fault due
to an instruction access would fail if the vma did not have the
VM_EXEC flag set.  This gives an inconsistent enforcement on these
CPUs of the no-execute status of the vma (since reading from the page
is sufficient to allow subsequent execution from it), and causes old
versions of ppc32 glibc (2.2 and earlier) to fail, since they rely
on executing the word before the GOT but don't have it marked
executable.

This fixes the problem by allowing execution from readable (or writable)
areas on CPUs which do not provide separate control over data and
instruction reads.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Jon Loeliger <jdl@freescale.com>
2007-07-22 21:30:58 +10:00
..
4xx_mmu.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
44x_mmu.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
fault.c [POWERPC] Allow exec faults on readable areas on classic 32-bit PowerPC 2007-07-22 21:30:58 +10:00
fsl_booke_mmu.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
hash_low_32.S [POWERPC] Fix COMMON symbol warnings 2007-05-17 21:10:15 +10:00
hash_low_64.S [POWERPC] Add ability to 4K kernel to hash in 64K pages 2007-05-09 16:35:00 +10:00
hash_native_64.c [POWERPC] Move inline asm eieio to using eieio inline function 2007-07-10 00:33:14 -05:00
hash_utils_64.c [POWERPC] cell: CONFIG_SPE_BASE is a typo 2007-07-22 21:30:57 +10:00
hugetlbpage.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
init_32.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
init_64.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
lmb.c [POWERPC] Allow duplicate lmb_reserve() calls 2007-03-08 15:43:28 +11:00
Makefile [POWERPC] Rewrite IO allocation & mapping on powerpc64 2007-06-14 22:29:56 +10:00
mem.c [POWERPC] Remove extra return statement 2007-07-10 22:01:01 +10:00
mmap.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
mmu_context_32.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
mmu_context_64.c [POWERPC] Introduce address space "slices" 2007-05-09 16:35:00 +10:00
mmu_decl.h [POWERPC] Kill typedef-ed structs for hash PTEs and BATs 2007-06-14 22:30:16 +10:00
numa.c Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
pgtable_32.c [POWERPC] Remove a couple of unused definitions from pgtable_32.c 2007-06-14 22:30:15 +10:00
pgtable_64.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
ppc_mmu_32.c [POWERPC] Kill typedef-ed structs for hash PTEs and BATs 2007-06-14 22:30:16 +10:00
slb.c [POWERPC] Introduce address space "slices" 2007-05-09 16:35:00 +10:00
slb_low.S [POWERPC] Introduce address space "slices" 2007-05-09 16:35:00 +10:00
slice.c [POWERPC] Introduce address space "slices" 2007-05-09 16:35:00 +10:00
stab.c [POWERPC] Move inline asm eieio to using eieio inline function 2007-07-10 00:33:14 -05:00
tlb_32.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
tlb_64.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00