OpenCloudOS-Kernel/arch/arm64/include/asm
Catalin Marinas 16dd46bb78 arm64: No need to set the x0-x2 registers in start_thread()
For historical reasons, ARM used to set r0-r2 in start_thread() to the
first values on the user stack when starting a new user application. The
same logic has been inherited in AArch64. The x0 register is overridden
by the sys_execve() return value so it's always zero on success. The x1
and x2 registers are ignored by AArch64 and EABI AArch32 applications,
so we can safely remove the register setting for both native and compat
user space.

This also fixes a potential fault with the kernel accessing user space
stack directly.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
2012-10-18 20:14:01 +01:00
..
Kbuild UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
arm_generic.h arm64: Generic timers support 2012-09-17 13:42:20 +01:00
asm-offsets.h arm64: Assembly macros and definitions 2012-09-17 10:24:44 +01:00
assembler.h arm64: Assembly macros and definitions 2012-09-17 10:24:44 +01:00
atomic.h arm64: Atomic operations 2012-09-17 13:42:02 +01:00
barrier.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
bitops.h arm64: Miscellaneous library functions 2012-09-17 13:42:18 +01:00
cache.h arm64: Cache maintenance routines 2012-09-17 13:42:00 +01:00
cacheflush.h arm64: Cache maintenance routines 2012-09-17 13:42:00 +01:00
cachetype.h arm64: Cache maintenance routines 2012-09-17 13:42:00 +01:00
cmpxchg.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
compat.h compat: move compat_siginfo_t definition to asm/compat.h 2012-10-06 03:05:16 +09:00
compiler.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
cputable.h arm64: CPU support 2012-09-17 13:41:59 +01:00
cputype.h arm64: CPU support 2012-09-17 13:41:59 +01:00
debug-monitors.h arm64: Debugging support 2012-09-17 13:42:14 +01:00
device.h arm64: Device specific operations 2012-09-17 13:42:04 +01:00
dma-mapping.h arm64: DMA mapping API 2012-09-17 13:42:05 +01:00
elf.h arm64: ELF definitions 2012-09-17 13:42:07 +01:00
exception.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
exec.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
fb.h arm64: Device specific operations 2012-09-17 13:42:04 +01:00
fpsimd.h arm64: Floating point and SIMD 2012-09-17 13:42:13 +01:00
futex.h arm64: Atomic operations 2012-09-17 13:42:02 +01:00
hardirq.h arm64: SMP support 2012-09-17 13:42:06 +01:00
hw_breakpoint.h arm64: Debugging support 2012-09-17 13:42:14 +01:00
hwcap.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
io.h arm64: Device specific operations 2012-09-17 13:42:04 +01:00
irq.h arm64: IRQ handling 2012-09-17 13:42:02 +01:00
irqflags.h arm64: IRQ handling 2012-09-17 13:42:02 +01:00
memblock.h arm64: MMU initialisation 2012-09-17 13:41:56 +01:00
memory.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
mmu.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
mmu_context.h arm64: Process management 2012-09-17 13:41:58 +01:00
module.h arm64: Loadable modules 2012-09-17 13:42:19 +01:00
page.h arm64: MMU fault handling and page table management 2012-09-17 13:41:57 +01:00
perf_event.h arm64: Performance counters support 2012-09-17 13:42:17 +01:00
pgalloc.h arm64: MMU fault handling and page table management 2012-09-17 13:41:57 +01:00
pgtable-2level-hwdef.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-2level-types.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-3level-hwdef.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-3level-types.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-hwdef.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pmu.h arm64: Performance counters support 2012-09-17 13:42:17 +01:00
proc-fns.h arm64: CPU support 2012-09-17 13:41:59 +01:00
processor.h arm64: No need to set the x0-x2 registers in start_thread() 2012-10-18 20:14:01 +01:00
prom.h arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
ptrace.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
shmparam.h arm64: ELF definitions 2012-09-17 13:42:07 +01:00
sigcontext.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
signal32.h arm64: 32-bit (compat) applications support 2012-09-17 13:42:12 +01:00
smp.h arm64: SMP support 2012-09-17 13:42:06 +01:00
sparsemem.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
spinlock.h arm64: SMP support 2012-09-17 13:42:06 +01:00
spinlock_types.h arm64: SMP support 2012-09-17 13:42:06 +01:00
stacktrace.h arm64: Exception handling 2012-09-17 10:24:46 +01:00
stat.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
syscall.h arm64: Miscellaneous library functions 2012-09-17 13:42:18 +01:00
syscalls.h arm64: System calls handling 2012-09-17 13:42:08 +01:00
system_misc.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
thread_info.h arm64: Process management 2012-09-17 13:41:58 +01:00
timex.h arm64: Generic timers support 2012-09-17 13:42:20 +01:00
tlb.h arm64: TLB maintenance functionality 2012-09-17 13:42:01 +01:00
tlbflush.h arm64: TLB maintenance functionality 2012-09-17 13:42:01 +01:00
traps.h arm64: Exception handling 2012-09-17 10:24:46 +01:00
uaccess.h arm64: User access library functions 2012-09-17 13:42:11 +01:00
ucontext.h arm64: Signal handling support 2012-09-17 13:42:10 +01:00
unistd.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
unistd32.h arm64: Do not include asm/unistd32.h in asm/unistd.h 2012-10-11 10:39:08 +01:00
vdso.h arm64: VDSO support 2012-09-17 13:42:09 +01:00
vdso_datapage.h arm64: VDSO support 2012-09-17 13:42:09 +01:00