OpenCloudOS-Kernel/arch/frv/include/asm
Mike Frysinger 04e4f2b18c FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack
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>
2010-01-06 18:16:02 -08:00
..
Kbuild FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h FRV: Implement atomic64_t 2009-07-01 19:38:09 -07:00
auxvec.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
ax88796.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
bitops.h FRV: bitops: Change the bitmap index from int to unsigned long 2009-06-11 09:01:26 -07:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h FRV: Stop gcc from generating uninitialised variable warnings after BUG() 2009-04-27 08:04:49 -07:00
bugs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
busctl-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
byteorder.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
cache.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
cacheflush.h block: add helpers to run flush_dcache_page() against a bio and a request's pages 2009-11-26 09:16:19 +01:00
checksum.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
cpu-irqs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
cpumask.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
cputime.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
current.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
delay.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
device.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
div64.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
dm9000.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
dma-mapping.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
dma.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
elf.h elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
emergency-restart.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
errno.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
fb.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
fcntl.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
fpu.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
ftrace.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
futex.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
gdb-stub.h misc: remove redundant start_kernel prototypes 2009-09-23 10:05:22 -07:00
gpio-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
hardirq.h FRV: Use asm/generic-hardirq.h 2009-09-23 10:15:21 -07:00
highmem.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
hw_irq.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
io.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
ioctl.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
ioctls.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
ipcbuf.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
irc-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
irq.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
irq_regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
kdebug.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
kmap_types.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
linkage.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
local.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
math-emu.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mb-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mb86943a.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mb93091-fpga-irqs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mb93093-fpga-irqs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mb93493-irqs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mb93493-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mc146818rtc.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mem-layout.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mman.h mm: remove duplicate asm/mman.h files 2009-09-22 07:17:42 -07:00
mmu.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mmu_context.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
module.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
msgbuf.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
mutex.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
page.h FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack 2010-01-06 18:16:02 -08:00
param.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
pci.h asm-generic: merge branch 'master' of torvalds/linux-2.6 2009-06-12 11:32:58 +02:00
percpu.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
perf_event.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
pgalloc.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgtable.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
poll.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
posix_types.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
processor.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
ptrace.h FRV: Implement new-style ptrace 2009-06-11 09:01:26 -07:00
registers.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
resource.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
scatterlist.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
sections.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
segment.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
sembuf.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
serial-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
serial.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
setup.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
shmbuf.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
shmparam.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
sigcontext.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
siginfo.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
signal.h FRV: Fix interaction with new generic header stuff 2009-06-13 13:17:28 -07:00
smp.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
spinlock.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
spr-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
stat.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
statfs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
string.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
suspend.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
swab.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
syscall.h FRV: Implement new-style ptrace 2009-06-11 09:01:26 -07:00
system.h FRV: Implement atomic64_t 2009-07-01 19:38:09 -07:00
termbits.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
termios.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
thread_info.h sched: INIT_PREEMPT_COUNT 2009-07-10 14:24:05 -07:00
timer-regs.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
timex.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
tlb.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
tlbflush.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
topology.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
types.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
uaccess.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
ucontext.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
unaligned.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
unistd.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
user.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
vga.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
virtconvert.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00
xor.h FRV: Move to arch/frv/include/asm/ 2009-04-10 01:48:06 +01:00