linux-hardened/drivers
Martin Schwidefsky f19fbd5ed6 s390: introduce execute-trampolines for branches
Add CONFIG_EXPOLINE to enable the use of the new -mindirect-branch= and
-mfunction_return= compiler options to create a kernel fortified against
the specte v2 attack.

With CONFIG_EXPOLINE=y all indirect branches will be issued with an
execute type instruction. For z10 or newer the EXRL instruction will
be used, for older machines the EX instruction. The typical indirect
call

	basr	%r14,%r1

is replaced with a PC relative call to a new thunk

	brasl	%r14,__s390x_indirect_jump_r1

The thunk contains the EXRL/EX instruction to the indirect branch

__s390x_indirect_jump_r1:
	exrl	0,0f
	j	.
0:	br	%r1

The detour via the execute type instruction has a performance impact.
To get rid of the detour the new kernel parameter "nospectre_v2" and
"spectre_v2=[on,off,auto]" can be used. If the parameter is specified
the kernel and module code will be patched at runtime.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2018-02-07 15:57:02 +01:00
..
accessibility
acpi Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
amba
android Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
ata Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2018-01-30 14:48:30 -08:00
atm
auxdisplay
base drm/graphics pull request for v4.16-rc1 2018-02-01 17:48:47 -08:00
bcma Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-19 22:59:33 -05:00
block Merge branch 'work.sock_recvmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-01-30 18:59:03 -08:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
bus ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
cdrom
char drm/graphics pull request for v4.16-rc1 2018-02-01 17:48:47 -08:00
clk The core framework has a handful of patches this time around, mostly due 2018-02-01 16:56:07 -08:00
clocksource
connector
cpufreq Merge branch 'pm-cpufreq-thermal' into pm-cpufreq 2018-01-18 02:52:42 +01:00
cpuidle
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-01-31 14:22:45 -08:00
dax
dca
devfreq
dio
dma DMAengine updates for v4.16-rc1 2018-01-31 11:52:20 -08:00
dma-buf drm/graphics pull request for v4.16-rc1 2018-02-01 17:48:47 -08:00
edac
eisa EISA: Delete error message for a failed memory allocation in eisa_probe() 2018-01-23 09:04:10 +01:00
extcon
firewire
firmware ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
fmc
fpga
fsi
gpio The is the bulk of GPIO changes for the v4.16 kernel cycle. 2018-01-31 12:25:27 -08:00
gpu drm/graphics pull request for v4.16-rc1 2018-02-01 17:48:47 -08:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2018-01-31 13:00:01 -08:00
hsi HSI changes for the v4.16 series 2018-01-31 12:54:05 -08:00
hv Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
hwmon hwmon: (dell-smm) Disable fan support for Dell Vostro 3360 2018-01-27 09:34:22 -08:00
hwspinlock
hwtracing Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
i2c ARM: SoC platform updates for 4.16 2018-02-01 16:17:40 -08:00
ide ide: remove duplicated assignment to 'cursg' 2018-01-29 15:01:09 -05:00
idle
iio Staging/IIO patches for 4.16-rc1 2018-02-01 09:51:57 -08:00
infiniband Merge branch 'akpm' (patches from Andrew) 2018-01-31 18:46:22 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2018-02-01 10:49:58 -08:00
iommu ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
ipack
irqchip arm64 updates for 4.16: 2018-01-30 13:57:43 -08:00
isdn Merge branch 'work.sock_recvmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-01-30 18:59:03 -08:00
leds LED updates for 4.16-rc1 2018-01-31 12:22:41 -08:00
lightnvm
macintosh
mailbox
mcb
md - DM core fixes to ensure that bio submission follows a depth-first tree 2018-01-31 11:05:47 -08:00
media drm/graphics pull request for v4.16-rc1 2018-02-01 17:48:47 -08:00
memory ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
memstick
message
mfd regmap: Updates for v4.16 2018-01-29 11:35:24 -08:00
misc Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
mmc There are two major achievements for MMC in this release, which deserves to be 2018-01-29 11:26:11 -08:00
mtd dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
mux Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
net Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
nfc
ntb
nubus
nvdimm
nvme Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
nvmem
of ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
opp
oprofile
parisc
parport
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
pcmcia
perf
phy USB/PHY updates for 4.16-rc1 2018-02-01 09:40:49 -08:00
pinctrl The is the bulk of GPIO changes for the v4.16 kernel cycle. 2018-01-31 12:25:27 -08:00
platform Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
pnp
power power supply and reset changes for the v4.16 series 2018-01-31 12:55:31 -08:00
powercap
pps
ps3
ptp
pwm
rapidio
ras mm/memory_failure: Remove unused trapno from memory_failure 2018-01-23 12:17:42 -06:00
regulator Merge remote-tracking branch 'regulator/topic/tps65218' into regulator-next 2018-01-26 17:57:05 +00:00
remoteproc
reset
rpmsg
rtc The core framework has a handful of patches this time around, mostly due 2018-02-01 16:56:07 -08:00
s390 s390: introduce execute-trampolines for branches 2018-02-07 15:57:02 +01:00
sbus oradax: Fix return value check in dax_attach() 2018-01-29 14:28:48 -05:00
scsi Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
sfi
sh
siox
slimbus
sn
soc ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
soundwire soundwire: Fix a signedness bug 2018-01-22 16:45:26 +01:00
spi Merge remote-tracking branch 'spi/topic/xilinx' into spi-next 2018-01-26 17:57:34 +00:00
spmi
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-19 22:59:33 -05:00
staging drm/graphics pull request for v4.16-rc1 2018-02-01 17:48:47 -08:00
target Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block 2018-01-29 11:51:49 -08:00
tc
tee
thermal Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
thunderbolt
tty Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
uio Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
usb Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
uwb
vfio VFIO updates for v4.16-rc1 2018-02-01 13:18:25 -08:00
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
video drm/graphics pull request for v4.16-rc1 2018-02-01 17:48:47 -08:00
virt Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
virtio
visorbus
vlynq
vme
w1 Documentation updates for 4.16. New stuff includes refcount_t 2018-01-31 19:25:25 -08:00
watchdog
xen dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
zorro
Kconfig Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
Makefile Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00