kernel_optimize_test/arch/arm/kernel
Russell King 8c8484a1c1 ARM: oabi-compat: copy semops using __copy_from_user()
__get_user_error() is used as a fast accessor to make copying structure
members as efficient as possible.  However, with software PAN and the
recent Spectre variant 1, the efficiency is reduced as these are no
longer fast accessors.

In the case of software PAN, it has to switch the domain register around
each access, and with Spectre variant 1, it would have to repeat the
access_ok() check for each access.

Rather than using __get_user_error() to copy each semops element member,
copy each semops element in full using __copy_from_user().

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2018-08-02 17:41:38 +01:00
..
.gitignore
arch_timer.c
armksyms.c ARM: 8745/1: get rid of __memzero() 2018-01-21 15:37:56 +00:00
asm-offsets.c ARM: 8708/1: NOMMU: Rework MPU to be mostly done in C 2017-10-23 16:58:59 +01:00
atags_compat.c
atags_parse.c ARM: better diagnostics with missing/corrupt dtb 2017-09-29 13:57:21 +01:00
atags_proc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atags.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bios32.c PCI: Remove PCI_REASSIGN_ALL_RSRC use on arm and arm64 2017-12-18 23:07:43 -06:00
bugs.c ARM: bugs: add support for per-processor bug checking 2018-05-31 10:39:34 +01:00
cpuidle.c ARM: Convert to using %pOF instead of full_name 2017-08-16 22:25:30 +02:00
crash_dump.c
debug.S Merge branches 'fixes', 'misc' and 'sa1111-for-next' into for-next 2017-11-08 19:42:43 +00:00
devtree.c ARM: Convert to using %pOF instead of full_name 2017-08-16 22:25:30 +02:00
dma-isa.c
dma.c
early_printk.c ARM: 8705/1: early_printk: use printascii() rather than printch() 2017-10-12 11:29:29 +01:00
efi.c
elf.c Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-11-16 12:50:35 -08:00
entry-armv.S ARM: probes: avoid adding kprobes to sensitive kernel-entry/exit code 2017-12-17 22:14:21 +00:00
entry-common.S ARM: spectre-v1: fix syscall entry 2018-05-31 23:27:26 +01:00
entry-ftrace.S ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS 2017-06-18 22:25:16 +01:00
entry-header.S ARM: spectre-v1: fix syscall entry 2018-05-31 23:27:26 +01:00
entry-v7m.S
fiq.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fiqasm.S
ftrace.c ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS 2017-06-18 22:25:16 +01:00
head-common.S ARM: 8745/1: get rid of __memzero() 2018-01-21 15:37:56 +00:00
head-inflate-data.c ARM: XIP kernel: store .data compressed in ROM 2017-09-10 19:34:53 -04:00
head-nommu.S ARM: 8713/1: NOMMU: Support MPU in XIP configuration 2017-10-23 16:59:31 +01:00
head.S ARM: align .data section 2017-08-14 16:22:55 +01:00
hibernate.c
hw_breakpoint.c ARM: 8733/1: hw_breakpoint: Mark variables as __ro_after_init 2017-12-17 22:16:20 +00:00
hyp-stub.S ARM: align .data section 2017-08-14 16:22:55 +01:00
insn.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq.c
isa.c
iwmmxt.S ARM: align .data section 2017-08-14 16:22:55 +01:00
jump_label.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kgdb.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
machine_kexec.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile ARM: bugs: prepare processor bug infrastructure 2018-05-31 10:39:18 +01:00
module-plts.c ARM: 8662/1: module: split core and init PLT sections 2017-03-17 10:01:28 +00:00
module.c ARM: Silence first allocation with CONFIG_ARM_MODULE_PLTS=y 2017-05-11 14:43:31 +01:00
module.lds License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
opcodes.c
paravirt.c
patch.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_callchain.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_event_v6.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_event_v7.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_event_xscale.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_regs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pj4-cp0.c
process.c arm: do not use print_symbol() 2018-01-05 15:19:56 +01:00
psci_smp.c
ptrace.c signal/ptrace: Add force_sig_ptrace_errno_trap and use it where needed 2018-01-22 19:07:11 -06:00
reboot.c ARM: soft-reboot into same mode that we entered the kernel 2017-04-09 07:49:24 -07:00
reboot.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
relocate_kernel.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
return_address.c
setup.c ARM: better diagnostics with missing/corrupt dtb 2017-09-29 13:57:21 +01:00
signal.c ARM: vfp: use __copy_from_user() when restoring VFP state 2018-08-02 17:41:37 +01:00
signal.h ARM: signal handling support for FDPIC_FUNCPTRS functions 2017-09-10 19:31:46 -04:00
sigreturn_codes.S ARM: signal handling support for FDPIC_FUNCPTRS functions 2017-09-10 19:31:46 -04:00
sleep.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smccc-call.S
smp_scu.c ARM: smp_scu: allow the platform code to read the SCU CPU status 2017-10-29 08:29:30 -07:00
smp_tlb.c
smp_twd.c clocksource/drivers: Rename CLOCKSOURCE_OF_DECLARE to TIMER_OF_DECLARE 2017-06-14 11:58:45 +02:00
smp.c ARM: bugs: hook processor bug checking into SMP and suspend paths 2018-05-31 10:39:29 +01:00
stacktrace.c ARM: probes: avoid adding kprobes to sensitive kernel-entry/exit code 2017-12-17 22:14:21 +00:00
suspend.c ARM: bugs: hook processor bug checking into SMP and suspend paths 2018-05-31 10:39:29 +01:00
swp_emulate.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
sys_arm.c
sys_oabi-compat.c ARM: oabi-compat: copy semops using __copy_from_user() 2018-08-02 17:41:38 +01:00
tcm.c
thumbee.c
time.c treewide/trivial: Remove ';;$' typo noise 2018-02-22 10:59:33 +01:00
topology.c ARM: Convert to using %pOF instead of full_name 2017-08-16 22:25:30 +02:00
traps.c Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2018-02-02 09:50:51 -08:00
unwind.c
v7m.c
vdso.c ARM: 8748/1: mm: Define vdso_start, vdso_end as array 2018-03-24 14:27:49 +00:00
vmlinux-xip.lds.S ARM: probes: avoid adding kprobes to sensitive kernel-entry/exit code 2017-12-17 22:14:21 +00:00
vmlinux.lds.S ARM: probes: avoid adding kprobes to sensitive kernel-entry/exit code 2017-12-17 22:14:21 +00:00
xscale-cp0.c