kernel-ark/arch/x86/kernel
Jiri Kosina cc503c1b43 x86: PIE executable randomization
main executable of (specially compiled/linked -pie/-fpie) ET_DYN binaries
onto a random address (in cases in which mmap() is allowed to perform a
randomization).

The code has been extraced from Ingo's exec-shield patch
http://people.redhat.com/mingo/exec-shield/

[akpm@linux-foundation.org: fix used-uninitialsied warning]
[kamezawa.hiroyu@jp.fujitsu.com: fixed ia32 ELF on x86_64 handling]

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Roland McGrath <roland@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:31:07 +01:00
..
acpi x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
cpu x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
.gitignore
alternative.c x86: add set/clear_cpu_cap operations 2008-01-30 13:30:55 +01:00
aperture_64.c x86: clean up arch/x86/kernel/aperture_64.c printk()s 2008-01-30 13:30:10 +01:00
apic_32.c x86: add set/clear_cpu_cap operations 2008-01-30 13:30:55 +01:00
apic_64.c x86: add set/clear_cpu_cap operations 2008-01-30 13:30:55 +01:00
apm_32.c x86: move 8259 defines to i8259.h 2008-01-30 13:30:29 +01:00
asm-offsets_32.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
asm-offsets_64.c x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
asm-offsets.c
audit_64.c
bootflag.c
bugs_64.c
cpuid.c PM: Acquire device locks on suspend 2008-01-24 20:40:04 -08:00
crash_dump_32.c
crash_dump_64.c
crash.c x86: disable hpet legacy replacement for kdump 2007-12-03 17:17:10 +01:00
doublefault_32.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
e820_32.c x86: remove extern declarations for code, data, bss resources 2008-01-30 13:30:32 +01:00
e820_64.c x86: sanitize user specified e820 memmap values 2008-01-30 13:30:46 +01:00
early_printk.c
early-quirks.c
efi_32.c
efi_stub_32.S
entry_32.S x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
entry_64.S sched: high-res preemption tick 2008-01-25 21:08:29 +01:00
genapic_64.c
genapic_flat_64.c
geode_32.c
head64.c x86: do not set boot cpu in cpu_online_map at x86_64_start_kernel() 2008-01-30 13:30:46 +01:00
head_32.S fix lguest rmmod "bad pgd" 2008-01-01 11:30:35 -08:00
head_64.S
hpet.c x86: remove duplicate includes 2008-01-30 13:30:32 +01:00
i386_ksyms_32.c x86: unexport __{read,write}_lock_failed 2008-01-30 13:30:29 +01:00
i387_32.c
i387_64.c
i8237.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
i8253.c mips, x86: optimize the i8259 code a bit 2008-01-30 13:30:47 +01:00
i8259_32.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
i8259_64.c x86: make i8259_64 more _32-like 2008-01-30 13:30:29 +01:00
init_task.c x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
io_apic_32.c x86: move 8259 defines to i8259.h 2008-01-30 13:30:29 +01:00
io_apic_64.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
io_delay.c x86: add DMI quirk for io-delay hangs on Compaq Presario V6000 laptops 2008-01-30 13:30:05 +01:00
ioport_32.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
ioport_64.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
irq_32.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
irq_64.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
k8.c
kprobes_32.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
kprobes_64.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
ldt.c x86: merge arch/x86/kernel/ldt_32/64.c 2008-01-30 13:30:14 +01:00
machine_kexec_32.c
machine_kexec_64.c x86: 64-bit, make sparsemem vmemmap the only memory model 2008-01-30 13:30:47 +01:00
Makefile
Makefile_32 x86: ptrace_32 renamed 2008-01-30 13:31:01 +01:00
Makefile_64 x86: wipe out traditional opt from x86_64 Makefile 2008-01-30 13:31:03 +01:00
mca_32.c
mfgpt_32.c x86: GEODE fix a race condition in the MFGPT timer tick 2008-01-22 23:30:16 +01:00
microcode.c cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus() 2008-01-25 21:08:02 +01:00
module_32.c
module_64.c
mpparse_32.c x86: 32-bit IOAPIC: de-fang IRQ compression 2008-01-30 13:31:02 +01:00
mpparse_64.c
msr.c PM: Acquire device locks on suspend 2008-01-24 20:40:04 -08:00
nmi_32.c x86: clean up nmi_32/64.c 2008-01-30 13:30:33 +01:00
nmi_64.c x86: clean up nmi_32/64.c 2008-01-30 13:30:33 +01:00
numaq_32.c
paravirt_32.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
pci-calgary_64.c x86: remove duplicate includes 2008-01-30 13:30:32 +01:00
pci-dma_32.c
pci-dma_64.c x86: pci-dma_64.c: cleanups 2008-01-30 13:30:31 +01:00
pci-gart_64.c x86: code cleanups in arch/x86/kernel/pci-gart_64.c 2008-01-30 13:30:12 +01:00
pci-nommu_64.c
pci-swiotlb_64.c x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
pcspeaker.c
pmtimer_64.c x86: move pmtmr related declarations 2008-01-30 13:30:18 +01:00
process_32.c x86: clean up process_32/64.c 2008-01-30 13:31:03 +01:00
process_64.c x86: clean up process_32/64.c 2008-01-30 13:31:03 +01:00
ptrace.c x86: x86 ia32 ptrace arch merge 2008-01-30 13:31:01 +01:00
quirks.c
reboot_32.c x86: disable hpet on shutdown 2007-12-03 17:17:10 +01:00
reboot_64.c x86: disable hpet on shutdown 2007-12-03 17:17:10 +01:00
reboot_fixups_32.c x86: reboot fixup for wrap2c board 2007-11-17 16:27:02 +01:00
relocate_kernel_32.S
relocate_kernel_64.S
rtc.c x86: share rtc code 2008-01-30 13:30:27 +01:00
scx200_32.c
setup64.c x86: setup64 eflags constants 2008-01-30 13:30:57 +01:00
setup_32.c x86: add set/clear_cpu_cap operations 2008-01-30 13:30:55 +01:00
setup_64.c x86: add set/clear_cpu_cap operations 2008-01-30 13:30:55 +01:00
sigframe_32.h
signal_32.c x86: x86-32 thread_struct.debugreg 2008-01-30 13:30:59 +01:00
signal_64.c x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
smp_32.c x86: prevent dereferencing non-allocated per_cpu variables 2008-01-30 13:30:55 +01:00
smp_64.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
smpboot_32.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
smpboot_64.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
smpcommon_32.c
srat_32.c
stacktrace.c x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
step.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
summit_32.c
suspend_64.c x86: hibernation: document __save_processor_state() on x86 2008-01-30 13:30:04 +01:00
suspend_asm_64.S x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
sys_i386_32.c
sys_x86_64.c x86: PIE executable randomization 2008-01-30 13:31:07 +01:00
syscall_64.c
syscall_table_32.S
tce_64.c
time_32.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
time_64.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
tls.c x86: TLS cleanup 2008-01-30 13:30:46 +01:00
topology.c x86: arch_register_cpu() section fix 2007-12-04 17:19:07 +01:00
trampoline_32.S
trampoline_64.S
traps_32.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
traps_64.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
tsc_32.c x86: scale cyc_2_nsec according to CPU frequency 2008-01-30 13:30:06 +01:00
tsc_64.c x86: split get_cycles_sync 2008-01-30 13:31:03 +01:00
tsc_sync.c x86: fix: s2ram + P4 + tsc = annoyance 2008-01-30 13:30:04 +01:00
verify_cpu_64.S
vm86_32.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
vmi_32.c x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
vmiclock_32.c x86: move 8259 defines to i8259.h 2008-01-30 13:30:29 +01:00
vmlinux_32.lds.S x86: vmlinux_32.lds.S: remove repeated comment from the x86-32 linker script 2008-01-30 13:30:46 +01:00
vmlinux_64.lds.S all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
vmlinux.lds.S
vsmp_64.c x86: clean up arch/x86/kernel/vsmp_64.c 2008-01-30 13:30:24 +01:00
vsyscall_64.c x86: introduce native_read_tscp 2008-01-30 13:31:06 +01:00
x8664_ksyms_64.c x86: unexport __{read,write}_lock_failed 2008-01-30 13:30:29 +01:00