linux/arch/powerpc
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
..
boot Add phy-connection-type to gianfar nodes 2007-07-18 18:29:37 -04:00
configs [POWERPC] Fix misspelled "CONFIG_CHECK_CACHE_COHERENCY" Kconfig option. 2007-07-22 21:30:58 +10:00
kernel [CELL] oprofile: add support to OProfile for profiling CELL BE SPUs 2007-07-20 21:42:24 +02:00
lib [POWERPC] rheap - eliminates internal fragments caused by alignment 2007-06-19 22:35:53 -05:00
math-emu [POWERPC] ppc math-emu needs -fno-builtin-fabs for math.c and fabs.c 2006-09-26 15:24:35 +10:00
mm [POWERPC] Allow exec faults on readable areas on classic 32-bit PowerPC 2007-07-22 21:30:58 +10:00
oprofile [CELL] oprofile: add support to OProfile for profiling CELL BE SPUs 2007-07-20 21:42:24 +02:00
platforms [POWERPC] Fix future firmware feature fixups function failure 2007-07-22 21:30:58 +10:00
sysdev [CELL] driver for DDR2 memory on AXON 2007-07-20 21:41:42 +02:00
xmon [POWERPC] fix showing xmon help 2007-07-22 21:30:58 +10:00
.gitignore [POWERPC] Add files build to .gitignore 2006-12-04 20:41:29 +11:00
Kconfig Start split out of common open firmware code 2007-07-20 13:28:41 +10:00
Kconfig.debug Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2007-07-19 14:28:19 -07:00