linux/arch/s390
Heiko Carstens 989c77a3de s390/pci: Fix __pcilg_mio_inuser() inline assembly
commit c4abe62342 upstream.

Use "a" constraint for the shift operand of the __pcilg_mio_inuser() inline
assembly. The used "d" constraint allows the compiler to use any general
purpose register for the shift operand, including register zero.

If register zero is used this my result in incorrect code generation:

 8f6:   a7 0a ff f8             ahi     %r0,-8
 8fa:   eb 32 00 00 00 0c       srlg    %r3,%r2,0  <----

If register zero is selected to contain the shift value, the srlg
instruction ignores the contents of the register and always shifts zero
bits. Therefore use the "a" constraint which does not permit to select
register zero.

Fixes: f058599e22 ("s390/pci: Fix s390_mmio_read/write with MIO")
Cc: stable@vger.kernel.org
Reported-by: Niklas Schnelle <schnelle@linux.ibm.com>
Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-06-27 11:11:45 +01:00
..
appldata sysctl: treewide: constify the ctl_table argument of proc_handlers 2024-07-24 20:59:29 +02:00
boot s390/boot: Fix ESSA detection 2025-02-27 04:30:22 -08:00
configs s390: Update defconfigs 2024-10-16 11:32:32 +02:00
crypto crypto: lib/Kconfig - Hide arch options from user 2025-05-02 07:59:32 +02:00
hypfs hypfs_create_cpu_files(): add missing check for hypfs_mkdir() failure 2025-05-29 11:02:15 +02:00
include s390/tlb: Use mm_has_pgste() instead of mm_alloc_pgste() 2025-05-29 11:02:13 +02:00
kernel s390/entry: Fix last breaking event handling in case of stack corruption 2025-05-18 08:24:47 +02:00
kvm KVM: s390: rename PROT_NONE to PROT_TYPE_DUMMY 2025-06-27 11:11:23 +01:00
lib s390/alternatives: Rework to allow for callbacks 2024-07-23 16:02:31 +02:00
mm s390: Remove ioremap_wt() and pgprot_writethrough() 2025-04-10 14:39:18 +02:00
net s390/bpf: Store backchain even for leaf progs 2025-06-19 15:31:49 +02:00
pci s390/pci: Fix __pcilg_mio_inuser() inline assembly 2025-06-27 11:11:45 +01:00
purgatory s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS 2025-02-08 09:58:19 +01:00
tools s390 updates for 6.12 merge window 2024-09-21 09:02:54 -07:00
Kbuild - An extensive rework of kexec and crash Kconfig from Eric DeVolder 2023-08-29 14:53:51 -07:00
Kconfig s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init() 2025-02-08 09:58:07 +01:00
Kconfig.debug s390/Kconfig.debug: fix indentation 2022-06-01 12:03:15 +02:00
Makefile s390: Fix linker error when -no-pie option is unavailable 2025-04-20 10:15:59 +02:00
Makefile.postlink s390/build: Avoid relocation information in final vmlinux 2024-08-27 20:16:48 +02:00