linux-uconsole/arch/blackfin/include/asm
Mike Frysinger 944a638b7b FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack
commit 04e4f2b18c upstream.

The current code will load the stack size and protection markings, but
then only use the markings in the MMU code path.  The NOMMU code path
always passes PROT_EXEC to the mmap() call.  While this doesn't matter
to most people whilst the code is running, it will cause a pointless
icache flush when starting every FDPIC application.  Typically this
icache flush will be of a region on the order of 128KB in size, or may
be the entire icache, depending on the facilities available on the CPU.

In the case where the arch default behaviour seems to be desired
(EXSTACK_DEFAULT), we probe VM_STACK_FLAGS for VM_EXEC to determine
whether we should be setting PROT_EXEC or not.

For arches that support an MPU (Memory Protection Unit - an MMU without
the virtual mapping capability), setting PROT_EXEC or not will make an
important difference.

It should be noted that this change also affects the executability of
the brk region, since ELF-FDPIC has that share with the stack.  However,
this is probably irrelevant as NOMMU programs aren't likely to use the
brk region, preferring instead allocation via mmap().

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-02-09 04:50:49 -08:00
..
atomic.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
auxvec.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
bfin-global.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bfin5xx_spi.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bfin_rotary.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bfin_sdh.h Blackfin arch: add SDIO host driver platform data 2009-01-07 23:14:38 +08:00
bfin_simple_timer.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bfin_sport.h Blackfin arch: clean up sports header file 2009-03-28 20:38:17 +08:00
bfrom.h Blackfin arch: Update some inline assembly, tweak some register constraints 2009-01-07 23:14:39 +08:00
bitops.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
blackfin.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bug.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bugs.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
byteorder.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cache.h Blackfin: fix missed cache config renames 2009-10-07 04:48:08 -04:00
cacheflush.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cdef_LPBlackfin.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
checksum.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
clocks.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
context.S Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cplb.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cplbinit.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cpu.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cputime.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
current.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
def_LPBlackfin.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
delay.h Blackfin arch: Remove outdated code 2009-02-04 16:49:45 +08:00
device.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
div64.h
dma-mapping.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
dma.h Blackfin: add SSYNC to set_dma_sg() for descriptor fetching 2009-06-12 06:11:57 -04:00
dpmc.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
early_printk.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
elf.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
emergency-restart.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
entry.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
errno.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
fb.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
fcntl.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
fixed_code.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
flat.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
ftrace.h Blackfin: update ftrace for latest toolchain 2009-09-16 22:10:52 -04:00
futex.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
gpio.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
gptimers.h Blackfin: update gptimers API 2009-06-12 06:11:47 -04:00
hardirq.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
hw_irq.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
io.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
ioctl.h
ioctls.h Blackfin: convert asm/ioctls.h to asm-generic/ioctls.h 2009-06-18 21:40:53 -04:00
ipcbuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
ipipe.h Blackfin: fix misnomer of some I-pipe helpers 2009-09-16 21:28:30 -04:00
ipipe_base.h Blackfin: convert interrupt pipeline to irqflags 2009-06-22 21:15:53 -04:00
irq.h Blackfin: asm/irq.h: pull in mach/anomaly.h for anomaly defines 2009-10-07 04:48:01 -04:00
irq_handler.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
irq_regs.h
irqflags.h Blackfin: convert interrupt pipeline to irqflags 2009-06-22 21:15:53 -04:00
Kbuild Blackfin arch: cleanup bfin_sport.h header and export it to userspace 2009-03-05 19:42:43 +08:00
kdebug.h
kgdb.h Blackfin arch: scrub comments/whitespace/cvs keywords 2009-02-04 16:49:45 +08:00
kmap_types.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
l1layout.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
linkage.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
local.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
mem_init.h Blackfin: bf526-ezbrd: handle different SDRAM chips 2009-06-22 21:16:12 -04:00
mem_map.h Blackfin: unify memory map headers 2009-06-22 21:16:07 -04:00
mman.h Blackfin: convert signal/mmap to asm-generic 2009-06-18 21:41:26 -04:00
mmu.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
mmu_context.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
module.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
msgbuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
mutex.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
nand.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
page.h FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack 2010-02-09 04:50:49 -08:00
page_offset.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
param.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
pci.h
pda.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
percpu.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
pgalloc.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
pgtable.h Blackfin: fix framebuffer mmap bug for nommu 2009-10-08 00:58:15 -04:00
poll.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
portmux.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
posix_types.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
processor.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
ptrace.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
reboot.h Blackfin arch: Fix bug - Run "reboot" hangs bf518-ezbrd 2009-02-04 16:49:45 +08:00
resource.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
rwlock.h Blackfin arch: SMP supporting patchset: Blackfin header files and machine common code 2009-01-07 23:14:39 +08:00
scatterlist.h
sections.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
segment.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
sembuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
serial.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
setup.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
shmbuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
shmparam.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
sigcontext.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
siginfo.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
signal.h Blackfin: convert signal/mmap to asm-generic 2009-06-18 21:41:26 -04:00
smp.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
socket.h Blackfin: convert socket/poll to asm-generic 2009-06-18 21:41:08 -04:00
sockios.h Blackfin: convert socket/poll to asm-generic 2009-06-18 21:41:08 -04:00
spinlock.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
spinlock_types.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
stat.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
statfs.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
string.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
swab.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
system.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
termbits.h Blackfin: convert termios to asm-generic 2009-06-18 21:41:17 -04:00
termios.h Blackfin: convert termios to asm-generic 2009-06-18 21:41:17 -04:00
thread_info.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
time.h Blackfin: add support for gptimer0 as a tick source 2009-06-12 06:11:37 -04:00
timex.h Blackfin arch: make sure cycles is marked as volatile so gcc doesnt reorder on us 2008-10-16 23:55:41 +08:00
tlb.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
tlbflush.h Blackfin: convert page/tlb to asm-generic 2009-06-18 21:42:30 -04:00
topology.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
trace.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
traps.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
types.h Blackfin: convert types to asm-generic 2009-06-18 21:42:24 -04:00
uaccess.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
ucontext.h Blackfin: convert page/tlb to asm-generic 2009-06-18 21:42:30 -04:00
unaligned.h Blackfin: convert locking primitives to asm-generic 2009-06-18 21:41:22 -04:00
unistd.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
user.h Blackfin: convert user/elf to asm-generic 2009-06-18 21:41:03 -04:00
xor.h Blackfin arch: use generic xor.h 2008-11-18 17:48:22 +08:00