linux/include/asm-powerpc
Eric B Munson a91a03ee31 powerpc: Keep 3 high personality bytes across exec
Currently when a 32 bit process is exec'd on a powerpc 64 bit host the
value in the top three bytes of the personality is clobbered.  patch
adds a check in the SET_PERSONALITY macro that will carry all the
values in the top three bytes across the exec.

These three bytes currently carry flags to disable address randomisation,
limit the address space, force zeroing of an mmapped page, etc.  Should an
application set any of these bits they will be maintained and honoured on
homogeneous environment but discarded and ignored on a heterogeneous
environment.  So if an application requires all mmapped pages to be initialised
to zero and a wrapper is used to setup the personality and exec the target,
these flags will remain set on an all 32 or all 64 bit envrionment, but they
will be lost in the exec on a mixed 32/64 bit environment.  Losing these bits
means that the same application would behave differently in different
environments.  Tested on a POWER5+ machine with 64bit kernel and a mixed
64/32 bit user space.

Signed-off-by: Eric B Munson <ebmunson@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-07-01 14:47:02 +10:00
..
iseries [POWERPC] iSeries: Localise and constify some iSeries data 2008-04-15 21:21:25 +10:00
8xx_immap.h [POWERPC] include/asm-powerpc/: Spelling fixes 2007-12-20 16:17:44 +11:00
8253pit.h
a.out.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
abs_addr.h [LIB]: Make PowerPC LMB code generic so sparc64 can use it too. 2008-02-13 16:56:49 -08:00
agp.h x86: remove flush_agp_mappings() 2008-01-30 13:34:07 +01:00
asm-compat.h powerpc: Consolidate CPU and firmware feature fixup macros 2008-07-01 11:28:25 +10:00
atomic.h [POWERPC] Implement atomic{, 64}_{read, write}() without volatile 2007-08-17 11:01:58 +10:00
auxvec.h
backlight.h
bitops.h generic: implement __fls on all 64-bit archs 2008-04-26 19:21:16 +02:00
bootx.h
btext.h
bug.h Fix WARN_ON() on bitfield ops 2007-07-31 21:12:07 -07:00
bugs.h
byteorder.h
cache.h powerpc/booke: Add support for new e500mc core 2008-06-18 16:17:56 -05:00
cacheflush.h [POWERPC] DEBUG_PAGEALLOC for 32-bit 2007-04-13 04:09:39 +10:00
cell-pmu.h [POWERPC] cell: add cbe_node_to_cpu function 2007-04-23 21:44:38 +02:00
cell-regs.h [POWERPC] cell: Add Cell memory controller register defs and expose it 2007-10-09 21:01:56 +10:00
checksum.h
clk_interface.h [POWERPC] clk.h interface for platforms 2007-10-03 09:11:56 +10:00
code-patching.h powerpc: Add PPC_NOP_INSTR, a hash define for the preferred nop instruction 2008-07-01 11:28:23 +10:00
compat.h asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
cpm1.h powerpc/cpm: Remove !CONFIG_PPC_CPM_NEW_BINDING code 2008-06-26 01:49:06 -05:00
cpm2.h powerpc/cpm: Remove !CONFIG_PPC_CPM_NEW_BINDING code 2008-06-26 01:49:06 -05:00
cpm.h powerpc/QE: switch to the cpm_muram implementation 2008-06-10 11:11:21 -05:00
cputable.h powerpc: Add VSX CPU feature 2008-07-01 11:28:47 +10:00
cputhreads.h [POWERPC] Fix thinko in cpu_thread_mask_to_cores() 2008-02-26 22:17:03 +11:00
cputime.h taskstats scaled time cleanup 2008-02-06 10:41:00 -08:00
current.h [POWERPC] Include stddef.h in asm-powerpc/current.h to get offsetof 2007-03-09 15:03:24 +11:00
dbdma.h
dcr-generic.h [POWERPC] Refactor DCR code 2008-05-29 07:06:56 -05:00
dcr-mmio.h [POWERPC] Refactor DCR code 2008-05-29 07:06:56 -05:00
dcr-native.h [POWERPC] Refactor DCR code 2008-05-29 07:06:56 -05:00
dcr-regs.h [POWERPC] 4xx: Add PPC4xx L2-cache support (440GX) 2008-03-26 07:27:54 -05:00
dcr.h [POWERPC] Refactor DCR code 2008-05-29 07:06:56 -05:00
delay.h
device.h
div64.h
dma-mapping.h [POWERPC] Add set_dma_ops() to match get_dma_ops() 2008-01-31 12:11:09 +11:00
dma.h scheduled OSS driver removal 2008-02-06 10:41:02 -08:00
edac.h [POWERPC] EDAC ECC software scrubber 2007-03-09 15:03:25 +11:00
eeh_event.h [POWERPC] EEH: rm un-needed data 2007-03-22 22:52:55 +11:00
eeh.h
elf.h powerpc: Keep 3 high personality bytes across exec 2008-07-01 14:47:02 +10:00
emergency-restart.h
errno.h
exception.h [POWERPC] irqtrace support for 64-bit powerpc 2008-04-18 15:38:47 +10:00
fb.h fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
fcntl.h
feature-fixups.h powerpc: Introduce infrastructure for feature sections with alternatives 2008-07-01 11:28:28 +10:00
firmware.h powerpc: Consolidate CPU and firmware feature fixup macros 2008-07-01 11:28:25 +10:00
fixmap.h [POWERPC] Port fixmap from x86 and use for kmap_atomic 2008-04-24 20:58:02 +10:00
floppy.h cleanup floppy.h 2007-10-17 08:42:55 -07:00
fs_pd.h [POWERPC] 85xx: Killed <asm/mpc85xx.h> 2007-10-11 09:14:31 -05:00
fsl_gtm.h powerpc/sysdev: implement FSL GTM support 2008-06-10 10:38:50 -05:00
fsl_lbc.h [POWERPC] fsl_lbc: implement few UPM routines 2008-04-17 01:01:38 -05:00
futex.h asm-*/futex.h should include linux/uaccess.h 2008-04-30 08:29:52 -07:00
gpio.h [POWERPC] Implement support for the GPIO LIB API 2008-04-17 07:46:11 +10:00
grackle.h
hardirq.h
heathrow.h
highmem.h [POWERPC] Port fixmap from x86 and use for kmap_atomic 2008-04-24 20:58:02 +10:00
hugetlb.h powerpc: Add 64 bit version of huge_ptep_set_wrprotect 2008-07-01 11:28:56 +10:00
hvcall.h [POWERPC] Add H_ILLAN_ATTRIBUTES hcall number 2007-07-11 13:24:40 +10:00
hvconsole.h
hvcserver.h
hw_irq.h [POWERPC] irqtrace support for 64-bit powerpc 2008-04-18 15:38:47 +10:00
hydra.h [POWERPC] Copy over headers from arch/ppc to arch/powerpc that we need 2007-08-22 22:43:29 -05:00
i8259.h
ibmebus.h [POWERPC] ibmebus: Move to of_device and of_platform_driver, match eHCA and eHEA drivers 2007-10-17 22:30:08 +10:00
ide.h ide: remove ide_init_default_irq() macro 2008-04-18 00:46:35 +02:00
immap_86xx.h [POWERPC] 86xx: fix guts_set_dmacr() and add guts_set_pmuxcr_dma() to immap_86xx.h 2007-12-11 13:57:18 -06:00
immap_cpm2.h [POWERPC] cpm2: Infrastructure code cleanup. 2007-10-04 11:02:04 -05:00
immap_qe.h [POWERPC] QE: immap_qe.h should include asm/io.h 2008-04-17 01:01:39 -05:00
io-defs.h [POWERPC] cell: Generalize io-workarounds code 2008-04-24 21:08:12 +10:00
io.h powerpc: Fix copy-and-paste error in clrsetbits_le16 2008-06-30 22:31:07 +10:00
ioctl.h [POWERPC] Get most of ioctl.h content from <asm-generic/ioctl.h> 2008-05-16 23:22:28 +10:00
ioctls.h
iommu.h iommu sg: powerpc: convert iommu to use the IOMMU helper 2008-02-05 09:44:11 -08:00
ipcbuf.h
ipic.h [POWERPC] ipic: add new interrupts introduced by new chip 2007-12-11 13:57:18 -06:00
irq_regs.h
irq.h [POWERPC] Move to runtime allocated exception stacks 2008-06-02 14:54:42 -05:00
irqflags.h [POWERPC] irqtrace support for 64-bit powerpc 2008-04-18 15:38:47 +10:00
Kbuild powerpc: Don't export asm/asm-compat.h to userspace 2008-07-01 11:28:09 +10:00
kdebug.h x86: optimize page faults like all other achitectures and kill notifier cruft 2007-10-16 09:42:50 -07:00
kdump.h [POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero) 2008-04-24 20:58:01 +10:00
kexec.h powerpc: Provide dummy crash_shutdown_register 2008-06-30 22:30:55 +10:00
keylargo.h
kgdb.h [POWERPC] Copy over headers from arch/ppc to arch/powerpc that we need 2007-08-22 22:43:29 -05:00
kmap_types.h
kprobes.h Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00
kvm_asm.h KVM: ppc: PowerPC 440 KVM implementation 2008-04-27 18:21:39 +03:00
kvm_host.h KVM: ppc: Handle guest idle by emulating MSR[WE] writes 2008-05-04 14:44:44 +03:00
kvm_para.h KVM: ppc: PowerPC 440 KVM implementation 2008-04-27 18:21:39 +03:00
kvm_ppc.h KVM: ppc: Remove duplicate function 2008-06-06 21:22:09 +03:00
kvm.h KVM: ppc: PowerPC 440 KVM implementation 2008-04-27 18:21:39 +03:00
libata-portmap.h
linkage.h
lmb.h [POWERPC] Use lowmem_end_addr to limit lmb allocations on ppc32 2008-04-17 07:46:13 +10:00
local.h local_t: powerpc extension 2007-05-08 11:15:20 -07:00
lppaca.h [POWERPC] Donate idle CPU cycles on dedicated partitions 2007-06-14 22:29:58 +10:00
lv1call.h [POWERPC] PS3: System-bus rework 2007-06-28 19:16:38 +10:00
machdep.h powerpc/85xx: add DOZE/NAP support for e500 core 2008-06-26 01:48:56 -05:00
macio.h [POWERPC] replace asm/of_device.h with linux/of_device.h in macio.h 2008-04-15 21:21:26 +10:00
mc146818rtc.h
mediabay.h [POWERPC] Build fix for drivers/macintosh/mediabay.c 2008-06-16 15:00:47 +10:00
mman.h
mmu_context.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
mmu-8xx.h [POWERPC] Move phys_addr_t definition into asm/types.h 2008-04-17 07:46:14 +10:00
mmu-40x.h [POWERPC] Move phys_addr_t definition into asm/types.h 2008-04-17 07:46:14 +10:00
mmu-44x.h ppc: Export tlb_44x_hwater for KVM 2008-04-27 18:21:37 +03:00
mmu-fsl-booke.h [POWERPC] Move phys_addr_t definition into asm/types.h 2008-04-17 07:46:14 +10:00
mmu-hash32.h powerpc: Get rid of bitfields in ppc_bat struct 2008-06-30 22:31:05 +10:00
mmu-hash64.h Merge branch 'linux-2.6' into powerpc-next 2008-05-16 23:13:42 +10:00
mmu.h [POWERPC] 40x MMU 2007-08-20 07:28:48 -05:00
mmzone.h [POWERPC] We don't define CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID 2007-05-10 21:28:13 +10:00
module.h
mpc6xx.h [POWERPC] Add 6xx-style HID0_SLEEP support. 2008-05-16 23:22:28 +10:00
mpc8xx.h [POWERPC] 8xx: Get rid of conditional includes of board specific setup 2008-01-28 08:31:04 -06:00
mpc52xx_psc.h [POWERPC] mpc512x: Add MPC512x PSC support to MPC52xx psc driver 2008-02-06 14:05:40 -07:00
mpc52xx.h [POWERPC] Add common clock setting routine mpc52xx_psc_set_clkdiv() 2008-01-26 15:32:18 -07:00
mpc86xx.h [POWERPC] kill isa_{io,mem}_base definitions for !PCI 2007-06-29 01:56:43 -05:00
mpc512x.h [POWERPC] mpc512x: Basic platform support 2008-02-06 14:03:10 -07:00
mpc8260.h [POWERPC] 82xx: Embedded Planet EP8248E support 2008-01-23 19:34:43 -06:00
mpic.h Merge branch 'merge' into powerpc-next 2008-05-23 16:53:23 +10:00
msgbuf.h
mutex.h
namei.h
nvram.h include/asm-powerpc/nvram.h needs list.h 2008-02-05 09:44:08 -08:00
of_device.h [POWERPC] Move of_device_get_modalias to drivers/of 2008-05-16 23:22:28 +10:00
of_platform.h [POWERPC] Enable RTC for Ebony and Walnut (v2) 2008-01-25 07:07:26 -06:00
ohare.h
oprofile_impl.h [POWERPC] Made FSL Book-E PMC support more generic 2008-02-05 23:34:14 -06:00
paca.h [POWERPC] Raise the upper limit of NR_CPUS and move the pacas into the BSS 2008-04-24 20:58:04 +10:00
page_32.h [POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero) 2008-04-24 20:58:01 +10:00
page_64.h powerpc: Only demote individual slices rather than whole process 2008-07-01 11:27:57 +10:00
page.h [POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero) 2008-04-24 20:58:01 +10:00
param.h
parport.h parport->dev driver model support 2007-05-08 11:15:05 -07:00
pasemi_dma.h pasemi_mac: jumbo frame support 2008-03-05 16:34:39 -06:00
pci-bridge.h powerpc/4xx: Workaround for PPC440EPx/GRx PCI_28 Errata 2008-06-17 19:01:38 -04:00
pci.h [POWERPC] Merge PCI resource allocation & assignment 2007-12-20 16:18:09 +11:00
percpu.h percpu: fix DEBUG_PREEMPT per_cpu checking 2008-02-23 12:09:28 -08:00
pgalloc-32.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgalloc-64.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgalloc.h [POWERPC] Remove arch/powerpc's dependence on asm-ppc/pg{alloc,table}.h 2007-05-02 20:04:30 +10:00
pgtable-4k.h powerpc: Free a PTE bit on ppc64 with 64K pages 2008-06-30 22:30:53 +10:00
pgtable-64k.h powerpc: Free a PTE bit on ppc64 with 64K pages 2008-06-30 22:30:53 +10:00
pgtable-ppc32.h powerpc: Add 64 bit version of huge_ptep_set_wrprotect 2008-07-01 11:28:56 +10:00
pgtable-ppc64.h powerpc: Add 64 bit version of huge_ptep_set_wrprotect 2008-07-01 11:28:56 +10:00
pgtable.h [POWERPC] Start factoring pgtable-ppc32.h and pgtable-ppc64.h 2007-06-14 22:30:15 +10:00
phyp_dump.h [POWERPC] pseries/phyp dump: Reserve a variable amount of space at boot 2008-04-17 07:46:14 +10:00
pmac_feature.h [POWERPC] Disable G5 NAP mode during SMU commands on U3 2008-02-08 19:52:35 +11:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h [POWERPC] pasemi: PA6T oprofile support 2007-04-24 21:31:51 +10:00
pmi.h [POWERPC] remove include of asm/of_device.h from pmi.h 2008-04-15 21:21:25 +10:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h asm-*/posix_types.h: scrub __GLIBC__ 2008-02-08 09:22:34 -08:00
ppc4xx.h [POWERPC] 4xx: Create common ppc4xx_reset_system() in ppc4xx_soc.c 2008-04-02 20:44:56 -05:00
ppc_asm.h powerpc: Add VSX assembler code macros 2008-07-01 11:28:48 +10:00
ppc-pci.h [POWERPC] iSeries: Call iSeries_pcibios_init from setup_arch 2007-12-11 13:42:32 +11:00
processor.h powerpc: Introduce VSX thread_struct and CONFIG_VSX 2008-07-01 11:28:46 +10:00
prom.h powerpc: Implement OF PCI address accessors stubs for CONFIG_PCI=n 2008-06-30 22:30:51 +10:00
ps3.h [POWERPC] PS3: Make ps3_virq_setup and ps3_virq_destroy static 2008-05-02 15:00:44 +10:00
ps3av.h ps3: use symbolic names for video modes 2008-02-06 10:41:17 -08:00
ps3fb.h [POWERPC] PS3: Frame buffer system-bus rework 2007-06-28 19:16:42 +10:00
ps3stor.h [POWERPC] PS3: Storage Driver Core 2007-06-28 19:19:20 +10:00
pSeries_reconfig.h
ptrace.h powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
qe_ic.h [POWERPC] QEIC: Implement pluggable handlers, fix MPIC cascading 2007-10-08 08:38:57 -05:00
qe.h powerpc/QE: use arch_initcall to probe QUICC Engine GPIOs 2008-06-26 01:49:09 -05:00
reg_8xx.h
reg_booke.h powerpc/e500mc: flush L2 on NAP for e500mc 2008-06-26 01:49:03 -05:00
reg_fsl_emb.h [POWERPC] Made FSL Book-E PMC support more generic 2008-02-05 23:34:14 -06:00
reg.h powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
resource.h
rheap.h [POWERPC] User rheap from arch/powerpc/lib 2007-05-09 23:28:17 -05:00
rio.h [RAPIDIO] Move include/asm-ppc/rio.h to asm-powerpc 2008-04-29 19:40:27 +10:00
rtas.h Revert "[POWERPC] Fix RTAS os-term usage on kernel panic" 2007-12-03 09:39:45 +11:00
rtc.h
rwsem.h [POWERPC] irqtrace support for 64-bit powerpc 2008-04-18 15:38:47 +10:00
scatterlist.h Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
seccomp.h
sections.h
semaphore.h Generic semaphore implementation 2008-04-17 10:42:34 -04:00
sembuf.h
serial.h
setjmp.h [POWERPC] Make setjmp/longjmp code usable outside of xmon 2008-01-25 22:52:50 +11:00
setup.h
shmbuf.h
shmparam.h
sigcontext.h powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
siginfo.h
signal.h
smp.h [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
smu.h [POWERPC] include/asm-powerpc/: Spelling fixes 2007-12-20 16:17:44 +11:00
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h [POWERPC] Add error return from htab_remove_mapping() 2008-04-01 20:43:08 +11:00
spinlock_types.h
spinlock.h powerpc: Make sure that include/asm-powerpc/spinlock.h does not trigger compilation warnings 2008-07-01 11:29:00 +10:00
spu_csa.h powerpc/spufs: remove class_0_dsisr from spu exception handling 2008-06-16 14:35:00 +10:00
spu_info.h
spu_priv1.h [POWERPC] cell: wrap master run control bit 2007-12-21 19:45:05 +11:00
spu.h powerpc/spufs: remove class_0_dsisr from spu exception handling 2008-06-16 14:35:00 +10:00
sstep.h
stat.h
statfs.h
string.h [POWERPC] Add hand-coded assembly strcmp 2008-04-07 10:03:03 +10:00
suspend.h [POWERPC] Fix suspend states again 2007-05-02 20:04:30 +10:00
synch.h powerpc/booke: Add support for new e500mc core 2008-06-18 16:17:56 -05:00
syscalls.h unified (weak) sys_pipe implementation 2008-05-03 13:50:33 -07:00
systbl.h [POWERPC] Wire up new timerfd syscalls 2008-02-14 22:11:01 +11:00
system.h powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
tce.h
termbits.h [POWERPC] Enable arbitary speed tty ioctls and split input/output speed 2007-07-10 22:03:29 +10:00
termios.h
thread_info.h [POWERPC] Defer processing of interrupts when the CPU wakes from sleep mode 2008-05-16 23:22:28 +10:00
time.h [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
timex.h powerpc: Introduce infrastructure for feature sections with alternatives 2008-07-01 11:28:28 +10:00
tlb.h [POWERPC] Include pagemap.h in asm/powerpc/tlb.h 2007-10-03 12:02:43 +10:00
tlbflush.h [POWERPC] Fix oops related to 4xx flush_tlb_page modification 2007-11-09 03:51:14 -06:00
topology.h asm-generic: add node_to_cpumask_ptr macro 2008-04-19 19:44:58 +02:00
tsi108_irq.h [POWERPC] Change include protections to ASM_POWERPC 2007-05-17 21:10:15 +10:00
tsi108_pci.h [POWERPC] Change include protections to ASM_POWERPC 2007-05-17 21:10:15 +10:00
tsi108.h [POWERPC] Generalize tsi108 PCI setup 2007-05-08 11:54:20 +10:00
types.h powerpc: types: use <asm-generic/int-*.h> for the powerpc architecture 2008-05-02 16:18:35 -07:00
uaccess.h [POWERPC] Fix uninitialized variable bug in copy_{to|from}_user 2008-05-15 20:49:52 +10:00
ucc_fast.h ucc_geth: Implement Transmit on Demand support 2007-04-28 11:01:04 -04:00
ucc_slow.h [POWERPC] qe: miscellaneous code improvements and fixes to the QE library 2007-10-08 08:38:15 -05:00
ucc.h [POWERPC] qe: miscellaneous code improvements and fixes to the QE library 2007-10-08 08:38:15 -05:00
ucontext.h
udbg.h [POWERPC] 4xx: Add early udbg support for 40x processors 2007-12-23 13:13:03 -06:00
uic.h [POWERPC] Add arch/powerpc driver for UIC, PPC4xx interrupt controller 2007-04-24 21:32:01 +10:00
unaligned.h kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
uninorth.h
unistd.h [POWERPC] Wire up new timerfd syscalls 2008-02-14 22:11:01 +11:00
user.h Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
vdso_datapage.h [POWERPC] vdso: Fixes for cache block sizes 2007-11-20 13:56:31 +11:00
vdso.h [POWERPC] Fix vDSO page count calculation 2007-02-13 15:35:52 +11:00
vga.h
vio.h [POWERPC] iSeries: Fix section mismatch in viodsasd 2008-02-06 16:30:00 +11:00
xilinx_intc.h [POWERPC] Virtex: add xilinx interrupt controller driver 2007-10-03 07:23:14 -05:00
xmon.h [POWERPC] Make cpus_in_xmon static and remove extern mess from hvc_console.c 2008-05-14 22:31:57 +10:00
xor.h