android_kernel_motorola_sm6375/arch/s390
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Josh Poimboeuf 87b47c7f9f s390: fix nospec table alignments
commit c9305b6c1f52060377c72aebe3a701389e9f3172 upstream.

Add proper alignment for .nospec_call_table and .nospec_return_table in
vmlinux.

[hca@linux.ibm.com]: The problem with the missing alignment of the nospec
tables exist since a long time, however only since commit e6ed91fd0768
("s390/alternatives: remove padding generation code") and with
CONFIG_RELOCATABLE=n the kernel may also crash at boot time.

The above named commit reduced the size of struct alt_instr by one byte,
so its new size is 11 bytes. Therefore depending on the number of cpu
alternatives the size of the __alt_instructions array maybe odd, which
again also causes that the addresses of the nospec tables will be odd.

If the address of __nospec_call_start is odd and the kernel is compiled
With CONFIG_RELOCATABLE=n the compiler may generate code that loads the
address of __nospec_call_start with a 'larl' instruction.

This will generate incorrect code since the 'larl' instruction only works
with even addresses. In result the members of the nospec tables will be
accessed with an off-by-one offset, which subsequently may lead to
addressing exceptions within __nospec_revert().

Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/8719bf1ce4a72ebdeb575200290094e9ce047bcc.1661557333.git.jpoimboe@kernel.org
Cc: <stable@vger.kernel.org> # 4.16
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-15 12:04:52 +02:00
..
appldata
boot
configs locking/refcount: Consolidate implementations of refcount_t 2022-07-29 17:14:17 +02:00
crypto s390/archrandom: simplify back to earlier design and initialize earlier 2022-07-07 17:36:48 +02:00
hypfs s390/hypfs: avoid error message under KVM 2022-09-05 10:27:47 +02:00
include s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages 2022-09-15 12:04:52 +02:00
kernel s390: fix nospec table alignments 2022-09-15 12:04:52 +02:00
kvm KVM: s390: Clarify SIGP orders versus STOP/RESTART 2022-01-20 09:19:18 +01:00
lib s390: fix strrchr() implementation 2021-10-20 11:40:12 +02:00
mm s390/mm: do not trigger write fault when vma does not allow VM_WRITE 2022-09-05 10:27:44 +02:00
net bpf, s390: Fix potential memory leak about jit_data 2021-10-13 10:08:20 +02:00
numa
oprofile
pci s390/pci_mmio: fully validate the VMA before calling follow_pte() 2021-09-26 14:07:06 +02:00
purgatory
scripts
tools
Kbuild
Kconfig s390: remove unneeded 'select BUILD_BIN2C' 2022-07-07 17:36:49 +02:00
Kconfig.debug
Makefile s390: disable -Warray-bounds 2022-05-18 09:47:26 +02:00