linux/arch/sparc/include/asm
Jiri Kosina 16f3e95b32 cross-arch: don't corrupt personality flags upon exec()
Historically, the top three bytes of personality have been used for
things such as ADDR_NO_RANDOMIZE, which made sense only for specific
architectures.

We now however have a flag there that is general no matter the
architecture (UNAME26); generally we have to be careful to preserve the
personality flags across exec().

This patch tries to fix all architectures that forcefully overwrite
personality flags during exec() (ppc32 and s390 have been fixed recently
by commits f9783ec862 ("[S390] Do not clobber personality flags on
exec") and 59e4c3a2fe ("powerpc/32: Don't clobber personality flags on
exec") in a similar way already).

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Mark Salter <msalter@redhat.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Richard Kuo <rkuo@codeaurora.org>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
Cc: Jonas Bonn <jonas@southpole.se>
Cc: Chen Liqin <liqin.chen@sunplusct.com>
Cc: Lennox Wu <lennox.wu@gmail.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-10-06 03:04:47 +09:00
..
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
apb.h
apc.h
asi.h sparc64: Add PCR ops for SPARC-T4. 2012-08-18 23:26:19 -07:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h sparc: Add asm/asm.h 2008-12-09 00:50:13 -08:00
asmmacro.h sparc32: add support for run-time patching of leon/sun single instructions 2012-05-27 23:52:43 -07:00
atomic_32.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
atomic_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
atomic.h
auxio_32.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
auxio_64.h
auxio.h
auxvec.h
backoff.h sparc64: Make lock backoff really a NOP on UP builds. 2010-08-18 22:53:26 -07:00
barrier_32.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
barrier_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
barrier.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
bbc.h
bitext.h
bitops_32.h bitops: remove minix bitops from asm/bitops.h 2011-03-23 19:46:22 -07:00
bitops_64.h sparc: Use popc when possible for ffs/__ffs/ffz. 2011-08-02 21:28:53 -07:00
bitops.h
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
btext.h sparc64: Faster early-boot framebuffer console. 2009-11-27 17:33:43 -08:00
bug.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
bugs.h sparc64: Implement SSTATE purely using notifiers and initcalls. 2008-09-02 00:49:38 -07:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h sparc32: Remove completely unused code from asm/cache.h 2012-05-19 21:15:37 -07:00
cacheflush_32.h sparc32: Move cache and TLB flushes over to method ops. 2012-05-13 20:49:31 -07:00
cacheflush_64.h sparc32: use flushi when run-time patching in per_cpu_patch 2012-05-20 13:33:36 -07:00
cacheflush.h sparc32: use flushi when run-time patching in per_cpu_patch 2012-05-20 13:33:36 -07:00
cachetlb_32.h sparc32: Move cache and TLB flushes over to method ops. 2012-05-13 20:49:31 -07:00
chafsr.h
checksum_32.h
checksum_64.h
checksum.h
chmctrl.h
clock.h
cmpxchg_32.h sparc32: remove runtime btfix support 2012-05-14 14:05:09 -07:00
cmpxchg_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
cmpxchg.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
compat_signal.h
compat.h compat: sync compat_stats with statfs. 2011-10-28 14:58:53 +02:00
contregs.h sparc32: Remove sun4{,c} control reg definitions from contregs.h. 2012-05-11 21:29:17 -07:00
cpu_type.h sparc32: Remove sun4 and sun4c from enum sparc_cpu. 2012-05-12 00:23:23 -07:00
cpudata_32.h sparc32: generic clockevent support 2012-04-15 10:28:50 -07:00
cpudata_64.h sparc64: Use a seperate counter for timer interrupts and NMI checks, like x86. 2010-04-12 22:37:07 -07:00
cpudata.h
cputime.h
current.h
dcr.h
dcu.h
delay_32.h
delay_64.h
delay.h
device.h of: remove asm/of_device.h 2010-07-24 09:57:52 -06:00
display7seg.h
dma-mapping.h sparc32,leon: always support leon in ioport 2012-05-27 23:52:53 -07:00
dma.h sparc32: Convert mmu_* interfaces from btfixup to method ops. 2012-05-13 13:57:05 -07:00
ebus_dma.h sparc: Move EBUS DMA interfaces into seperate header file. 2008-08-29 23:10:21 -07:00
ecc.h
eeprom.h
elf_32.h cross-arch: don't corrupt personality flags upon exec() 2012-10-06 03:04:47 +09:00
elf_64.h sparc64: Add detection for features new in SPARC-T4. 2012-08-18 23:02:36 -07:00
elf.h
emergency-restart.h
envctrl.h
errno.h mm: make __get_user_pages return -EHWPOISON for HWPOISON page optionally 2011-03-17 13:08:27 -03:00
estate.h
exec.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
fb.h sparc: Really fix "console=" for serial consoles. 2010-08-16 12:26:09 -07:00
fbio.h tree-wide: s/widht/width/g typo in comments 2010-02-05 12:22:42 +01:00
fcntl.h vfs: add nonconflicting values for O_PATH 2011-03-16 09:54:02 -04:00
fhc.h sparc64: Rewrite central driver. 2008-08-31 20:56:15 -07:00
floppy_32.h sparc: Kill mmu_{un,}lockarea(). 2012-05-13 13:23:16 -07:00
floppy_64.h sparc64: Remove pointless assignment in floppy support. 2012-05-14 20:59:25 -07:00
floppy.h
fpumacro.h
ftrace.h sparc64: Add proper dynamic ftrace support. 2009-06-16 04:56:53 -07:00
futex_32.h
futex_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
futex.h
gpio.h gpiolib/arches: Centralise bolierplate asm/gpio.h 2012-05-11 18:00:14 -06:00
hardirq_32.h sparc32: convert to asm-generic/hardirq.h 2009-10-01 13:45:13 -07:00
hardirq_64.h
hardirq.h
head_32.h sparc32: Kill unused defines from asm/head_32.h 2012-05-11 21:43:11 -07:00
head_64.h
head.h
highmem.h sparc32: move kmap_init() to highmem.c 2012-07-26 16:46:17 -07:00
hugetlb.h
hvtramp.h
hw_irq.h
hypervisor.h sparc64: Add hypervisor interfaces for SPARC-T4 perf counter access. 2012-08-18 23:03:53 -07:00
ide.h
idprom.h
intr_queue.h
io_32.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
io_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
io-unit.h sparc32: Kill iounit_map_dma_*(). 2008-08-29 02:15:23 -07:00
io.h sparc: add {read,write}*_be routines 2011-05-12 13:44:29 -07:00
ioctl.h
ioctls.h tty: add TIOCVHANGUP to allow clean tty shutdown of all ttys 2011-02-17 14:16:30 -08:00
iommu_32.h sparc: Remove generic SBUS probing layer. 2008-08-29 02:15:21 -07:00
iommu_64.h sparc64: Get rid of pci_controller_info. 2008-09-10 23:07:41 -07:00
iommu.h
ipcbuf.h sparc: unify ipcbuf.h 2009-01-04 15:44:52 -08:00
irq_32.h sparc32: genirq support 2011-04-19 22:11:40 -07:00
irq_64.h nmi watchdog: do not use cpp symbol in Kconfig 2012-03-23 16:58:31 -07:00
irq.h
irqflags_32.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
irqflags_64.h sparc/irqs: Do not trace arch_local_{*,irq_*} functions 2011-07-06 08:00:29 -07:00
irqflags.h
jsflash.h sparc: fix warning in userspace header jsflash.h 2009-01-02 21:31:13 -08:00
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
Kbuild word-at-a-time: make the interfaces truly generic 2012-05-26 11:33:40 -07:00
kdebug_32.h sparc32: kernel/trace/trace.c wants DIE_OOPS 2008-11-01 21:44:01 -07:00
kdebug_64.h sparc64: Implement NMI watchdog on capable cpus. 2009-01-30 00:03:53 -08:00
kdebug.h
kgdb.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h
kvm_para.h kvmclock: Add functions to check if the host has stopped the vm 2012-04-08 12:48:59 +03:00
ldc.h
leon_amba.h sparc32,leon: always include leon_kernel in build 2012-05-27 23:52:46 -07:00
leon_pci.h PCI: Make the struct pci_dev * argument of pci_fixup_irqs const. 2011-07-22 08:26:06 -07:00
leon.h sparc32,leon: drop leon_init() 2012-07-26 16:46:16 -07:00
linkage.h
lsu.h
machines.h sparc32: Trivial removal of sun4c references in comments. 2012-05-12 00:35:45 -07:00
mbus.h sparc32: Remove cypress cpu support. 2012-05-15 10:22:00 -07:00
mc146818rtc_32.h
mc146818rtc_64.h sparc64: Use generic CMOS driver. 2008-08-29 14:16:48 -07:00
mc146818rtc.h
mdesc.h sparc64: Probe cpu page size support more portably. 2012-09-06 19:01:25 -07:00
memctrl.h sparc64: Add generic interface for registering a dimm printing handler. 2008-08-24 22:08:34 -07:00
mman.h mm: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions 2009-09-22 07:17:41 -07:00
mmu_32.h sparc32: add irq + smp declarations to headers 2011-03-16 18:19:08 -07:00
mmu_64.h
mmu_context_32.h sparc32: centralize all mmu context handling in srmmu.c 2012-07-26 16:46:16 -07:00
mmu_context_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
mmu_context.h
mmu.h
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
module.h sparc: unify module.h 2008-12-26 15:35:41 -08:00
msgbuf.h
msi.h
mutex.h
mxcc.h
nmi.h sparc64: Initial hw perf counter support. 2009-09-10 06:28:20 -07:00
ns87303.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
obio.h sparc32: move smp ipi to method ops 2012-05-14 14:05:07 -07:00
openprom.h sparc: Pass buffer pointer all the way down to prom_{get,put}char(). 2010-11-30 14:33:29 -08:00
openpromio.h
oplib_32.h sparc: fix format string argument for prom_printf() 2012-10-02 23:20:34 -04:00
oplib_64.h sparc: fix format string argument for prom_printf() 2012-10-02 23:20:34 -04:00
oplib.h
page_32.h sparc32: drop sparc_unmapped_base 2012-07-26 16:46:16 -07:00
page_64.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
page.h
param.h sparc: Simplify param.h by simply including <asm-generic/param.h> 2010-01-12 02:46:16 -08:00
parport.h dt/sparc: Eliminate users of of_platform_{,un}register_driver 2011-02-28 01:36:39 -07:00
pbm.h
pci_32.h PCI: collapse pcibios_resource_to_bus 2012-02-23 20:19:04 -07:00
pci_64.h PCI: collapse pcibios_resource_to_bus 2012-02-23 20:19:04 -07:00
pci.h pci-dma: add linux/pci-dma.h to linux/pci.h 2010-03-12 15:52:42 -08:00
pcic.h sparc32: added CONFIG_PCIC_PCI Kconfig setting 2011-06-02 14:32:37 -07:00
pcr.h sparc64: Add PCR ops for SPARC-T4. 2012-08-18 23:26:19 -07:00
percpu_32.h
percpu_64.h sparc64: Get rid of real_setup_per_cpu_areas(). 2009-06-16 04:56:23 -07:00
percpu.h
perf_event.h perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
perfctr.h sparc64: Abstract away PIC register accesses. 2012-08-18 23:26:14 -07:00
pgalloc_32.h sparc32: drop quicklist 2012-07-26 16:46:16 -07:00
pgalloc_64.h sparc64: use RCU page table freeing 2011-07-25 20:57:10 -07:00
pgalloc.h
pgtable_32.h sparc32: drop unused BAD_PAGE stuff 2012-07-26 16:46:16 -07:00
pgtable_64.h sparc: Kill mmu_{un,}lockarea(). 2012-05-13 13:23:16 -07:00
pgtable.h
pgtsrmmu.h sparc32: srmmu_probe now knows about leon too 2012-05-27 23:52:51 -07:00
pil.h sparc64: Reschedule KGDB capture to a software interrupt. 2009-03-18 23:51:57 -07:00
poll.h
posix_types.h bury __kernel_nlink_t, make internal nlink_t consistent 2012-05-30 21:04:50 -04:00
processor_32.h Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-23 10:59:07 -07:00
processor_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2012-05-24 15:10:28 -07:00
processor.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
prom.h irq_domain: Centralize definition of irq_dispose_mapping() 2012-02-26 16:48:06 -07:00
psr.h sparc32: handle leon in cpu.c 2012-05-27 23:52:45 -07:00
psrcompat.h
pstate.h sparc64: Fix spelling of CAMELLIA in CFR macro name and comment. 2012-08-28 12:08:48 -07:00
ptrace.h sparc32: fix fallout from system.h removal 2012-03-30 18:16:58 -07:00
resource.h
ross.h
rwsem.h rwsem: Move duplicate function prototypes to linux/rwsem.h 2011-01-27 12:30:39 +01:00
sbi.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
scratchpad.h
seccomp.h x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
sections.h sparc32: add support for run-time patching of leon/sun single instructions 2012-05-27 23:52:43 -07:00
sembuf.h
serial.h serial: allow 8250 to be used on sparc 2008-10-13 09:51:40 -07:00
setup.h sparc32: Remove unused empty_bad_page{,_table} declarations. 2012-05-19 21:45:08 -07:00
sfafsr.h
sfp-machine_32.h
sfp-machine_64.h
sfp-machine.h
shmbuf.h
shmparam_32.h sparc32: Remove sun4 and sun4c from enum sparc_cpu. 2012-05-12 00:23:23 -07:00
shmparam_64.h
shmparam.h
sigcontext.h sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
siginfo.h UAPI: Don't include linux/compat.h in sparc's asm/siginfo.h 2011-12-12 13:54:35 +00:00
signal.h sparc: make SA_NOMASK a synonym of SA_NODEFER 2012-01-10 16:30:54 -08:00
smp_32.h sparc32: Kill unused hard_smp{4m,4d,leon}_processor_id() inlined. 2012-05-14 14:23:57 -07:00
smp_64.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smp.h
socket.h net: Add framework to allow sending packets with customized CRC. 2012-02-24 01:37:35 -08:00
sockios.h
sparsemem.h
spinlock_32.h sparc32: unbreak arch_write_unlock() 2011-08-15 14:35:19 -07:00
spinlock_64.h sparc64: remove unnecessary macros from spinlock_64.h 2011-08-15 14:35:18 -07:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h
spitfire.h sparc64: Future proof Niagara cpu detection. 2011-09-16 14:21:33 -07:00
stacktrace.h
starfire.h sparc64: Delete starfire_cpu_setup(). 2008-08-31 01:40:12 -07:00
stat.h sparc: Fix use of uid16_t and gid16_t in asm/stat.h 2010-03-27 08:36:18 -07:00
statfs.h SPARC: Use <asm-generic/statfs.h> 2008-09-06 19:30:17 +01:00
string_32.h sparc32: Remove inline strncmp "optimization" for constant counts. 2012-05-11 19:53:29 -07:00
string_64.h sparc: Stop trying to be so fancy and use __builtin_{memcpy,memset}() 2009-12-10 23:32:10 -08:00
string.h
sunbpp.h
swab.h sparc: introduce asm/swab.h 2009-01-06 18:10:27 -08:00
swift.h
switch_to_32.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
switch_to_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
switch_to.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
syscall.h tracing: Unify arch_syscall_addr() implementations 2010-02-17 13:07:21 +01:00
syscalls.h
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios.h sparc: remove several unnecessary module.h include instances 2011-10-31 19:30:54 -04:00
thread_info_32.h TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set 2012-06-01 12:58:50 -04:00
thread_info_64.h set_restore_sigmask() is never called without SIGPENDING (and never should be) 2012-06-01 12:58:50 -04:00
thread_info.h
timer_32.h sparc32: remove runtime btfix support 2012-05-14 14:05:09 -07:00
timer_64.h sparc64: Use unsigned long long for u64. 2009-01-06 13:19:28 -08:00
timer.h
timex_32.h sparc32: generic clockevent support 2012-04-15 10:28:50 -07:00
timex_64.h
timex.h
tlb_32.h
tlb_64.h sparc: mmu_gather rework 2011-05-25 08:39:13 -07:00
tlb.h
tlbflush_32.h sparc32: Move cache and TLB flushes over to method ops. 2012-05-13 20:49:31 -07:00
tlbflush_64.h sparc: mmu_gather rework 2011-05-25 08:39:13 -07:00
tlbflush.h
topology_32.h
topology_64.h sched/numa: Rewrite the CONFIG_NUMA sched domain support 2012-05-09 15:00:55 +02:00
topology.h
trap_block.h sparc64: Store per-cpu offset in trap_block[] 2009-06-16 04:56:11 -07:00
traps.h sparc32: Put back SPARC_BRANCH. 2012-05-11 20:57:29 -07:00
tsb.h sparc: Access kernel TSB using physical addressing when possible. 2011-08-05 00:53:57 -07:00
tsunami.h
ttable.h sparc64: Make special trap return path for TRAP_NMI(). 2008-12-04 09:17:03 -08:00
turbosparc.h
types.h consolidate umode_t declarations 2012-01-03 22:55:17 -05:00
uaccess_32.h sparc: use the new generic strnlen_user() function 2012-05-26 11:33:54 -07:00
uaccess_64.h sparc: use the new generic strnlen_user() function 2012-05-26 11:33:54 -07:00
uaccess.h sparc: Fix user_addr_max() definition. 2012-05-24 13:41:58 -07:00
uctx.h
unaligned.h
unistd.h compat: fs: Generic compat_sys_sendfile implementation 2012-10-02 21:35:55 -04:00
upa.h
user.h
utrap.h
vaddrs.h sparc32: drop fixmap.h 2012-07-26 16:46:16 -07:00
vga.h BUG: headers with BUG/BUG_ON etc. need linux/bug.h 2012-03-04 17:54:34 -05:00
viking.h
vio.h powerpc+sparc/vio: Modernize driver registration 2012-03-28 11:33:24 +11:00
visasm.h sparc64: Fix sparse warnings in visemul.c 2008-09-11 23:46:40 -07:00
watchdog.h
winmacro.h sparc32: Implement hard_smp_processor_id() via instruction patching. 2012-05-14 13:31:38 -07:00
xor_32.h
xor_64.h sparc64: Future proof Niagara cpu detection. 2011-09-16 14:21:33 -07:00
xor.h