linux/arch/s390/include/asm
Heiko Carstens 31475b8811 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: 0807b85652 ("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>
2025-11-14 15:58:20 +01:00
..
trace s390/hiperdispatch: Add trace events 2024-08-29 22:56:35 +02:00
vdso s390/time: Remove in-kernel time steering 2025-07-21 12:41:55 +02:00
abs_lowcore.h s390/lowcore: Convert relocated lowcore alternative to machine feature 2025-03-04 17:18:05 +01:00
access-regs.h s390/acrs: cleanup access register handling 2024-02-12 15:03:33 +01:00
airq.h
alternative.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
ap.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
appldata.h s390: Convert MACHINE_IS_[LPAR|VM|KVM], etc, machine_is_[lpar|vm|kvm]() 2025-03-04 17:18:07 +01:00
arch_hweight.h s390: Use MARCH_HAS_*_FEATURES defines 2024-09-07 17:12:42 +02:00
archrandom.h
asce.h s390/mm: Reimplement lazy ASCE handling 2025-04-14 11:23:21 +02:00
asm-const.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
asm-extable.h s390/uaccess: Shorten raw_copy_from_user() / raw_copy_to_user() inline assemblies 2025-03-04 17:18:03 +01:00
asm-prototypes.h s390/expoline: Make modules use kernel expolines 2024-04-17 13:38:03 +02:00
asm.h s390: Rename GCC_ASM_FLAG_OUTPUT_BROKEN to CC_ASM_FLAG_OUTPUT_BROKEN 2025-01-26 17:24:04 +01:00
atomic_ops.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
atomic.h s390/atomic: Provide arch_atomic_*_and_test() implementations 2024-12-15 16:19:03 +01:00
barrier.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
bitops.h more s390 updates for 6.18 merge window 2025-10-09 10:51:43 -07:00
boot_data.h s390/boot: Add timestamps to early boot messages 2025-01-26 17:24:02 +01:00
bug.h s390/bug: remove entry size from __bug_table section 2024-02-14 13:50:53 +01:00
cache.h
ccwdev.h driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
ccwgroup.h
checksum.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
chpid.h
chsc.h s390/chsc: use notifier for AP configuration changes 2024-04-09 17:29:55 +02:00
cio.h s390/virtio_ccw: use DMA handle from DMA API 2024-03-13 09:23:46 +01:00
clocksource.h
clp.h
cmb.h
cmpxchg.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
compat.h
cpacf.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
cpcmd.h
cpu_mf-insn.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
cpu_mf.h s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies 2025-03-18 17:13:51 +01:00
cpu.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
cpufeature.h watchdog: diag288_wdt: Implement module autoload 2025-04-16 09:26:49 +02:00
cputime.h
crw.h
css_chars.h s390/qdio: Rename feature flag aif_osa to aif_qdio 2025-01-03 11:00:53 +01:00
ctlreg.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
current.h s390/current: Implement current with inline assembly 2025-03-18 17:13:04 +01:00
dat-bits.h s390/kvm: Move bitfields for dat tables 2024-07-10 19:50:45 +02:00
debug.h s390/pci: Add pci_msg debug view to PCI report 2024-12-16 16:14:27 +01:00
delay.h
diag.h s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies 2025-03-18 17:13:51 +01:00
diag288.h watchdog: diag288_wdt: Implement module autoload 2025-04-16 09:26:49 +02:00
dis.h
dma-types.h s390/mm: provide simple ARCH_HAS_DEBUG_VIRTUAL support 2024-03-13 09:23:49 +01:00
dma.h
dwarf.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
eadm.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
ebcdic.h s390/ebcdic: Fix length decrement in codepage_convert() 2025-01-13 09:50:18 +01:00
elf.h s390: Remove 2k vs 4k page table leftovers 2025-03-18 17:13:05 +01:00
entry-common.h KVM: s390: Rework guest entry logic 2025-07-21 13:01:03 +00:00
exec.h
extable.h
extmem.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
facility.h s390/facilities: Fix warning about shadow of global variable 2024-10-10 15:32:43 +02:00
fault.h
fcx.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
fprobe.h fprobe: Add fprobe_header encoding feature 2024-12-26 10:50:05 -05:00
fpu-insn-asm.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
fpu-insn.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
fpu-types.h s390/checksum: provide vector register variant of csum_partial() 2024-02-16 14:30:17 +01:00
fpu.h s390/vx: Convert cpu_has_vx() to cpu feature function 2025-03-04 17:18:07 +01:00
ftrace.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
ftrace.lds.h
futex.h s390/mm: Reimplement lazy ASCE handling 2025-04-14 11:23:21 +02:00
gmap_helpers.h KVM: s390: Refactor and split some gmap helpers 2025-05-28 17:48:04 +02:00
gmap.h KVM: s390: Refactor and split some gmap helpers 2025-05-28 17:48:04 +02:00
hardirq.h s390: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
hiperdispatch.h s390/hiperdispatch: Introduce hiperdispatch 2024-08-29 22:56:35 +02:00
hugetlb.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
hw_irq.h
idals.h s390/cio,idal: fix virtual vs physical address confusion 2024-03-13 09:23:47 +01:00
idle.h
io.h - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
ipl.h
irq_work.h
irq.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
irqflags.h s390/irqflags: do not instrument arch_local_irq_*() with KMSAN 2024-07-03 19:30:25 -07:00
isc.h
itcw.h
jump_label.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
kasan.h
Kbuild arch, mm: move definition of node_data to generic code 2024-09-03 21:15:28 -07:00
kdebug.h
kexec.h s390/kdump: Provide is_kdump_kernel() implementation 2024-10-25 16:03:23 +02:00
kfence.h s390/kfence: Split kfence pool into 4k mappings in arch_kfence_init_pool() 2025-03-18 17:13:05 +01:00
kmsan.h s390/kmsan: Fix merge conflict with get_lowcore() introduction 2024-07-23 16:01:51 +02:00
kprobes.h
kvm_host_types.h s390/kvm: Split kvm_host header file 2025-03-31 12:20:39 +02:00
kvm_host.h KVM: s390/vfio-ap: Use kvm_is_gpa_in_memslot() instead of open coded equivalent 2025-09-30 13:38:06 -04:00
kvm_para.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
linkage.h
lowcore.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
maccess.h
machine.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
march.h s390: Allow to compile with z17 optimizations 2025-04-09 12:12:41 +02:00
mem_encrypt.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
mmu_context.h s390/mm: Select ARCH_WANT_IRQS_OFF_ACTIVATE_MM 2025-04-14 11:23:21 +02:00
mmu.h s390: Remove 2k vs 4k page table leftovers 2025-03-18 17:13:05 +01:00
module.h s390/module: Provide find_section() helper 2024-09-13 17:28:36 +02:00
msi.h
nmi.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
nospec-branch.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
nospec-insn.h s390: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
numa.h
os_info.h s390/os_info: Fix array size in struct os_info 2024-04-29 17:33:29 +02:00
page-states.h s390: Remove __bootdata annotations from declarations 2024-12-15 16:19:04 +01:00
page.h Merge branch 'uaccess-key' into features 2025-06-29 13:21:16 +02:00
pai.h s390/pai: Convert to use flag output macros 2024-11-13 14:31:32 +01:00
pci_clp.h s390/pci: check for relaxed translation capability 2025-02-21 12:01:57 +01:00
pci_debug.h
pci_dma.h iommu/s390: allow larger region tables 2025-04-17 16:43:12 +02:00
pci_insn.h iommu/s390: Make attach succeed when the device was surprise removed 2025-09-05 15:11:09 +02:00
pci_io.h s390/pci: Align prototypes of zpci IO memcpy functions 2024-10-16 11:33:06 +02:00
pci.h s390/pci: Restore IRQ unconditionally for the zPCI device 2025-10-24 15:25:43 +02:00
percpu.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
perf_event.h Performance events changes for v6.13: 2024-11-19 13:34:06 -08:00
pfault.h
pgalloc.h s390/mm: Add memory allocation profiling hooks 2025-09-25 14:28:58 +02:00
pgtable.h s390/mm: Fix __ptep_rdp() inline assembly 2025-11-14 15:58:20 +01:00
physmem_info.h s390/boot: Add physmem tracking debug support 2025-01-26 17:24:02 +01:00
pkey.h s390/pkey/crypto: Introduce xflags param for pkey in-kernel API 2025-04-30 11:34:03 +02:00
pnet.h
preempt.h s390/preempt: Optimize __preempt_count_dec_and_test() 2024-12-15 16:19:03 +01:00
processor.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
ptrace.h s390 updates for 6.17 merge window 2025-07-29 20:17:08 -07:00
purgatory.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
qdio.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
runtime_instr.h
runtime-const.h s390: Add runtime constant support 2024-07-23 15:54:58 +02:00
rwonce.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
schid.h
sclp.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
scsw.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
seccomp.h
sections.h
set_memory.h - The series "zram: optimal post-processing target selection" from 2024-11-23 09:58:07 -08:00
setup.h s390/nmi: Print additional information 2025-06-26 15:30:51 +02:00
signal.h
sigp.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
skey.h s390/skey: Provide infrastructure for executing with non-default access key 2025-06-29 13:12:02 +02:00
smp.h s390/smp: Implement raw_smp_processor_id() with inline assembly 2025-03-18 17:13:04 +01:00
softirq_stack.h s390: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
sparsemem.h s390/sparsemem: Provide phys_to_target_node() with CONFIG_NUMA 2024-11-07 10:33:44 +01:00
spinlock_types.h Improve consistency of '#error' directive messages 2024-11-11 17:17:04 -08:00
spinlock.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
stacktrace.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
stp.h s390/time: Add PtP driver 2024-10-30 17:02:39 -07:00
string.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
syscall_wrapper.h
syscall.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
sysinfo.h s390/sysinfo: Move stsi() to header file 2025-03-04 17:18:07 +01:00
text-patching.h
thread_info.h s390/entry: Remove unused TIF flags 2025-09-17 08:14:04 +02:00
timex.h s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
tlb.h Generic: 2025-06-02 12:24:58 -07:00
tlbflush.h s390/tlb: Convert MACHINE_HAS_TLB_GUEST to machine_has_tlb_guest() 2025-03-04 17:18:06 +01:00
topology.h s390/smp: Add support for HOTPLUG_SMT 2025-03-31 12:20:39 +02:00
tpi.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
types.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
uaccess.h s390/uaccess: Make cmpxchg_user_key() library code 2025-06-29 13:12:01 +02:00
unistd.h clone3: drop __ARCH_WANT_SYS_CLONE3 macro 2024-07-10 14:23:38 +02:00
unwind.h
uprobes.h
user.h
uv.h Generic: 2025-06-02 12:24:58 -07:00
vdso-symbols.h s390/vdso: Move vdso symbol handling to separate header file 2024-09-13 17:28:36 +02:00
vdso.h s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-06-16 16:23:02 +02:00
vmalloc.h
vmlinux.lds.h
vtime.h s390/vtime: Remove duplicate get_lowcore() calls 2024-06-18 17:01:33 +02:00
vtimer.h
word-at-a-time.h s390: Use inline qualifier for all EX_TABLE and ALTERNATIVE inline assemblies 2025-03-18 17:13:51 +01:00
xor.h