linux-uconsole/arch/arm64/kernel
James Morse 71710cd35a arm64: suspend: Reconfigure PSTATE after resume from idle
commit d08544127d upstream.

The suspend/resume path in kernel/sleep.S, as used by cpu-idle, does not
save/restore PSTATE. As a result of this cpufeatures that were detected
and have bits in PSTATE get lost when we resume from idle.

UAO gets set appropriately on the next context switch. PAN will be
re-enabled next time we return from user-space, but on a preemptible
kernel we may run work accessing user space before this point.

Add code to re-enable theses two features in __cpu_suspend_exit().
We re-use uao_thread_switch() passing current.

Signed-off-by: James Morse <james.morse@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
[Removed UAO hooks and commit-message references: this feature is not
 present in v4.4]
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-12-08 07:15:25 +01:00
..
vdso arm64: build vdso without libgcov 2015-11-12 15:18:07 +00:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
acpi.c Power management and ACPI updates for v4.4-rc1 2015-11-04 18:10:13 -08:00
alternative.c arm64: alternatives: ensure secondary CPUs execute ISB after patching 2015-08-04 18:52:09 +01:00
arm64ksyms.c arm64: add KASAN support 2015-10-12 17:46:36 +01:00
armv8_deprecated.c arm64: compat: fix stxr failure case in SWP emulation 2015-10-28 17:06:35 +00:00
asm-offsets.c arm64: kernel: Save and restore UAO and addr_limit on exception entry 2016-08-20 18:09:16 +02:00
cacheinfo.c arm64: kernel: add support for cpu cache information 2015-01-15 11:55:07 +00:00
cpu_errata.c arm64: Add workaround for Cavium erratum 27456 2016-09-15 08:27:44 +02:00
cpu_ops.c arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
cpufeature.c arm64: cpufeature: Schedule enable() calls instead of calling them via IPI 2016-12-08 07:15:24 +01:00
cpuidle.c arm64: cpuidle: add __init section marker to arm_cpuidle_init 2015-07-02 17:44:27 +01:00
cpuinfo.c arm64: Provide "model name" in /proc/cpuinfo for PER_LINUX32 tasks 2016-06-24 10:18:19 -07:00
debug-monitors.c arm64: debug: avoid resetting stepping state machine when TIF_SINGLESTEP 2016-10-07 15:23:42 +02:00
efi-entry.S arm64/efi: isolate EFI stub from the kernel proper 2015-10-12 16:20:12 +01:00
efi.c arm64: efi: fix initcall return values 2015-11-26 18:15:54 +00:00
entry-fpsimd.S arm64: fpsimd: fix a typo in fpsimd_save_partial_state ENDPROC 2014-07-31 11:42:42 +01:00
entry-ftrace.S arm64: ftrace: fix function_graph tracer panic 2015-10-02 11:12:56 +01:00
entry.S arm64: kernel: Save and restore UAO and addr_limit on exception entry 2016-08-20 18:09:16 +02:00
entry32.S arm64: entry32: remove pointless register assignment 2015-07-10 16:47:13 +01:00
fpsimd.c arm64: Move FP/ASIMD hwcap handling to common code 2015-10-21 15:35:59 +01:00
ftrace.c arm64: ftrace: fix ftrace_modify_graph_caller for branch replace 2015-02-23 09:13:45 +00:00
head.S arm64: kernel: Init MDCR_EL2 even in the absence of a PMU 2016-10-28 03:01:35 -04:00
hw_breakpoint.c arm64: Fix missing #include in hw_breakpoint.c 2015-10-12 12:10:53 +01:00
hyp-stub.S irqchip: gic-v3: Initial support for GICv3 2014-07-08 22:11:47 +00:00
image.h arm64: Add page size to the kernel image header 2015-10-19 17:54:41 +01:00
insn.c arm64: convert patch_lock to raw lock 2015-10-05 18:30:29 +01:00
io.c arm64: optimize memcpy_{from,to}io() and memset_io() 2014-11-06 17:25:27 +00:00
irq.c arm64: fix a migrating irq bug when hotplug cpu 2015-10-09 17:40:35 +01:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kgdb.c arm64/debug: Simplify BRK insn opcode declarations 2015-07-27 11:08:42 +01:00
kuser32.S arm64: Add __NR_* definitions for compat syscalls 2014-07-10 11:02:40 +01:00
Makefile arm64/efi: move arm64 specific stub C code to libstub 2015-10-30 16:02:52 +00:00
module.c arm64: add KASAN support 2015-10-12 17:46:36 +01:00
pci.c ARM64: PCI: do not enable resources on PROBE_ONLY systems 2015-07-30 20:17:07 +01:00
perf_callchain.c arm64: perf: factor out callchain code 2015-07-27 11:08:39 +01:00
perf_event.c arm64: kernel: enforce pmuserenr_el0 initialization and restore 2016-01-31 11:29:04 -08:00
perf_regs.c perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
process.c arm64: add cpu_idle tracepoints to arch_cpu_idle 2015-10-19 18:43:41 +01:00
psci-call.S arm64: psci: move psci firmware calls out of line 2015-02-26 18:23:53 +00:00
psci.c drivers: firmware: psci: move power_state handling to generic code 2015-10-02 14:35:16 +01:00
ptrace.c arm64: Rework valid_user_regs 2016-07-27 09:47:33 -07:00
return_address.c arm64: LLVMLinux: Use global stack pointer in return_address() 2014-09-08 14:39:19 +01:00
setup.c arm64 updates for 4.4: 2015-11-04 14:47:13 -08:00
signal.c arm64: Rework valid_user_regs 2016-07-27 09:47:33 -07:00
signal32.c arm64: Rework valid_user_regs 2016-07-27 09:47:33 -07:00
sleep.S arm64: mm: ensure patched kernel text is fetched from PoU 2015-08-05 10:05:20 +01:00
smp.c arm64: Fix incorrect per-cpu usage for boot CPU 2016-08-20 18:09:16 +02:00
smp_spin_table.c ARM64: kernel: make cpu_ops hooks DT agnostic 2015-05-19 16:09:29 +01:00
stacktrace.c Revert "ARM64: unwind: Fix PC calculation" 2015-10-28 17:07:07 +00:00
suspend.c arm64: suspend: Reconfigure PSTATE after resume from idle 2016-12-08 07:15:25 +01:00
sys.c arm64: make sys_call_table const 2015-01-27 09:38:08 +00:00
sys32.c arm64: fix implementation of mmap2 compat syscall 2015-03-19 10:43:51 +00:00
sys_compat.c arm64: compat: align cacheflush syscall with arch/arm 2014-12-01 13:31:12 +00:00
time.c clocksource: cosmetic: Drop OF 'dependency' from symbols 2015-10-01 02:18:39 +02:00
topology.c arm64: kernel: remove non-legit DT warnings when booting using ACPI 2015-07-27 11:08:41 +01:00
trace-events-emulation.h arm64: Trace emulation of AArch32 legacy instructions 2014-11-20 16:35:02 +00:00
traps.c arm64: Synchronise dump_backtrace() with perf callchain 2015-10-19 18:51:52 +01:00
vdso.c arm64: VDSO: fix coarse clock monotonicity regression 2015-08-10 15:37:45 +01:00
vmlinux.lds.S arm64: update linker script to increased L1_CACHE_BYTES value 2015-12-07 17:22:24 +00:00