2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-04 11:43:54 +08:00
linux-next/arch/arm64/kernel
Mark Rutland 381cc2b970 arm64: treat unhandled compat el0 traps as undef
Currently, if a compat process reads or writes from/to a disabled
cp15/cp14 register, the trap is not handled by the el0_sync_compat
handler, and the kernel will head to bad_mode, where it will die(), and
oops(). For 64 bit processes, disabled system register accesses are
currently treated as unhandled instructions.

This patch modifies entry.S to treat these unhandled traps as undefined
instructions, sending a SIGILL to userspace. This gives processes a
chance to handle this and stop using inaccessible registers, and
prevents further issues in the kernel as a result of the die().

Reported-by: Johannes Jensen <Johannes.Jensen@arm.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2013-05-31 16:04:44 +01:00
..
vdso arm64: vdso: remove broken, redundant sequence counting for timezones 2013-01-10 10:43:43 +00:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
arm64ksyms.c arm64: kernel: compiling issue, need 'EXPORT_SYMBOL(clear_page)' 2013-05-24 17:31:03 +01:00
asm-offsets.c arm64: Assembly macros and definitions 2012-09-17 10:24:44 +01:00
cputable.c arm64: CPU support 2012-09-17 13:41:59 +01:00
debug-monitors.c arm64: debug: clear mdscr_el1 instead of taking the OS lock 2013-05-13 11:44:56 +01:00
early_printk.c arm64: Fix duplicate definition of early_console 2013-05-13 11:44:53 +01:00
entry-fpsimd.S arm64: move FP-SIMD save/restore code to a macro 2012-12-05 11:26:50 +00:00
entry.S arm64: treat unhandled compat el0 traps as undef 2013-05-31 16:04:44 +01:00
fpsimd.c arm64: Floating point and SIMD 2012-09-17 13:42:13 +01:00
head.S arm64: head: match all affinity levels in the pen of the secondaries 2013-03-20 18:09:42 +00:00
hw_breakpoint.c arm64: Debugging support 2012-09-17 13:42:14 +01:00
hyp-stub.S arm64: add hypervisor stub 2012-12-05 11:26:49 +00:00
io.c arm64: Device specific operations 2012-09-17 13:42:04 +01:00
irq.c arm64: Use irqchip_init() for interrupt controller initialisation 2013-03-26 16:02:23 +00:00
kuser32.S arm64: 32-bit (compat) applications support 2012-09-17 13:42:12 +01:00
Makefile arm64: SMP: enable PSCI boot method 2013-01-29 16:56:37 +00:00
module.c arm64: Loadable modules 2012-09-17 13:42:19 +01:00
perf_event.c arm64: perf: add guest vs host discrimination 2013-01-29 16:56:17 +00:00
process.c - Since drivers/irqchip/irq-gic.c no longer has dependencies on arm32 2013-05-08 15:15:27 -07:00
psci.c arm64: psci: add support for PSCI invocations from the kernel 2013-01-29 16:56:37 +00:00
ptrace.c arm64: ptrace: use HW_BREAKPOINT_EMPTY type for disabled breakpoints 2012-10-18 20:15:34 +01:00
setup.c arm64: Invoke the of_platform_populate() at arch_initcall() level 2013-05-14 15:44:46 +01:00
signal32.c arm64: Removed unused variable in compat_setup_rt_frame() 2013-03-18 10:12:56 +00:00
signal.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
smp_psci.c arm64: psci: Use the MPIDR values from cpu_logical_map for cpu ids. 2013-03-26 11:58:10 +00:00
smp_spin_table.c arm64: SMP: rework the SMP code to be enabling method agnostic 2013-01-29 16:56:37 +00:00
smp.c Main features: 2013-04-30 10:10:48 -07:00
stacktrace.c arm64: Exception handling 2012-09-17 10:24:46 +01:00
sys32.S unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE 2013-05-09 13:46:38 -04:00
sys_compat.c compat: generic compat_sys_sched_rr_get_interval() implementation 2012-12-17 17:15:18 -08:00
sys.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
time.c ARM: convert arm/arm64 arch timer to use CLKSRC_OF init 2013-04-11 15:11:15 -05:00
traps.c arm64: Do not report user faults for handled signals 2013-05-24 17:31:04 +01:00
vdso.c arm64: vdso: remove broken, redundant sequence counting for timezones 2013-01-10 10:43:43 +00:00
vmlinux.lds.S arm64: Build infrastructure 2012-09-17 13:42:21 +01:00