linux/arch/mips
Daniel Borkmann bea9e2fd18 bpf: Introduce BPF nospec instruction for mitigating Spectre v4
[ Upstream commit f5e81d1117 ]

In case of JITs, each of the JIT backends compiles the BPF nospec instruction
/either/ to a machine instruction which emits a speculation barrier /or/ to
/no/ machine instruction in case the underlying architecture is not affected
by Speculative Store Bypass or has different mitigations in place already.

This covers both x86 and (implicitly) arm64: In case of x86, we use 'lfence'
instruction for mitigation. In case of arm64, we rely on the firmware mitigation
as controlled via the ssbd kernel parameter. Whenever the mitigation is enabled,
it works for all of the kernel code with no need to provide any additional
instructions here (hence only comment in arm64 JIT). Other archs can follow
as needed. The BPF nospec instruction is specifically targeting Spectre v4
since i) we don't use a serialization barrier for the Spectre v1 case, and
ii) mitigation instructions for v1 and v4 might be different on some archs.

The BPF nospec is required for a future commit, where the BPF verifier does
annotate intermediate BPF programs with speculation barriers.

Co-developed-by: Piotr Krysiuk <piotras@gmail.com>
Co-developed-by: Benedict Schlueter <benedict.schlueter@rub.de>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Piotr Krysiuk <piotras@gmail.com>
Signed-off-by: Benedict Schlueter <benedict.schlueter@rub.de>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-08-04 12:46:44 +02:00
..
alchemy MIPS: alchemy: xxs1500: add gpio-au1000.h header file 2021-06-03 09:00:50 +02:00
ar7 MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
ath25 MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
ath79 MIPS: ath79: Remove unused include <asm/mips_machine.h> 2020-07-28 10:20:44 +02:00
bcm47xx MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA 2020-12-30 11:53:09 +01:00
bcm63xx MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
bmips dma-direct: rename and cleanup __phys_to_dma 2020-09-11 09:14:43 +02:00
boot mips: disable branch profiling in boot/decompress.o 2021-07-20 16:05:58 +02:00
cavium-octeon Revert "MIPS: Octeon: Remove special handling of CONFIG_MIPS_ELF_APPENDED_DTB=y" 2021-03-04 11:38:26 +01:00
cobalt MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
configs MIPS: Loongson64: Select SMP in Kconfig to avoid build error 2020-10-12 11:22:40 +02:00
crypto crypto: poly1305 - fix poly1305_core_setkey() declaration 2021-05-14 09:50:13 +02:00
dec MIPS: DEC: Restore bootmem reservation for firmware working memory area 2020-10-14 23:57:57 +02:00
fw MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
generic MIPS: generic: Update node names to avoid unit addresses 2021-06-30 08:47:16 -04:00
include MIPS: vdso: Invalid GIC access through VDSO 2021-07-20 16:05:59 +02:00
ingenic MIPS: jz4740: Rename jz4740 folders to ingenic 2020-09-18 16:35:05 +02:00
jazz dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h> 2020-10-06 07:07:06 +02:00
kernel MIPS: cpu-probe: Fix FPU detection on Ingenic JZ4760(B) 2021-07-19 09:44:44 +02:00
kvm KVM: MIPS: clean up redundant kvm_run parameters in assembly 2020-09-28 07:57:21 -04:00
lantiq MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0 2021-03-04 11:37:38 +01:00
lib MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER 2021-06-16 12:01:37 +02:00
loongson2ef MIPS updates for v5.10: 2020-10-16 12:40:55 -07:00
loongson32 MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
loongson64 MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops 2021-07-19 09:44:55 +02:00
math-emu MIPS: Use fallthrough for arch/mips 2020-05-07 11:55:47 +02:00
mm MIPS: c-r4k: Fix section mismatch for loongson2_sc_init 2021-03-04 11:37:38 +01:00
mti-malta MIPS: malta: remove mach-malta/malta-dtshim.h header file 2020-09-21 22:16:47 +02:00
net bpf: Introduce BPF nospec instruction for mitigating Spectre v4 2021-08-04 12:46:44 +02:00
netlogic MIPS updates for v5.10: 2020-10-16 12:40:55 -07:00
oprofile mips/oprofile: Fix fallthrough placement 2020-08-22 09:23:15 +02:00
pci MIPS: pci-legacy: stop using of_pci_range_to_resource 2021-05-14 09:50:39 +02:00
pic32 MIPS: Only include the platform file needed 2020-05-13 00:17:18 +02:00
pistachio MIPS: Fix exception handler memcpy() 2020-05-24 09:15:54 +02:00
power
ralink MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c 2021-06-03 09:00:50 +02:00
rb532 MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
sgi-ip22 MIPS: Only include the platform file needed 2020-05-13 00:17:18 +02:00
sgi-ip27 mm/sparse: cleanup the code surrounding memory_present() 2020-08-07 11:33:27 -07:00
sgi-ip30 MIPS: SGI-IP30: Move irq bits to better header files 2020-09-21 22:15:49 +02:00
sgi-ip32 MIPS updates for v5.10: 2020-10-16 12:40:55 -07:00
sibyte MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
sni MIPS: SNI: Fix spurious interrupts 2020-09-16 22:40:58 +02:00
tools MIPS: tools: Fix resource leak in elf-entry.c 2020-05-24 09:29:48 +02:00
txx9 MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
vdso MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target=' 2021-03-04 11:38:26 +01:00
vr41xx MIPS: Fix builds for VR41xx platforms 2020-05-15 09:09:58 +02:00
Kbuild MIPS: Fix "make clean" error due to recent changes 2020-05-13 13:20:22 +02:00
Kbuild.platforms MIPS: generic: Add support for Ingenic SoCs 2020-09-18 16:33:59 +02:00
Kconfig MIPS: ingenic: Select CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER 2021-07-19 09:44:44 +02:00
Kconfig.debug mips: Add CPS_NS16550_WIDTH config 2020-05-22 09:12:52 +02:00
Makefile MIPS: Support binutils configured with --enable-mips-fix-loongson3-llsc=yes 2021-03-04 11:38:25 +01:00
Makefile.postlink