]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
s390/mm: Fix __ptep_rdp() inline assembly
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 13 Nov 2025 12:21:47 +0000 (13:21 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Fri, 14 Nov 2025 14:58:20 +0000 (15:58 +0100)
commit31475b88110c4725b4f9a79c3a0d9bbf97e69e1c
treee85581813b3d2fc34cebc6c3bd007d0dbf82825e
parent64e2f60f355e556337fcffe80b9bcff1b22c9c42
s390/mm: Fix __ptep_rdp() inline assembly

When a zero ASCE is passed to the __ptep_rdp() inline assembly, the
generated instruction should have the R3 field of the instruction set to
zero. However the inline assembly is written incorrectly: for such cases a
zero is loaded into a register allocated by the compiler and this register
is then used by the instruction.

This means that selected TLB entries may not be flushed since the specified
ASCE does not match the one which was used when the selected TLB entries
were created.

Fix this by removing the asce and opt parameters of __ptep_rdp(), since
all callers always pass zero, and use a hard-coded register zero for
the R3 field.

Fixes: 0807b856521f ("s390/mm: add support for RDP (Reset DAT-Protection)")
Cc: stable@vger.kernel.org
Reviewed-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/pgtable.h
arch/s390/mm/pgtable.c