diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-06-23 13:15:50 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-06-23 13:15:50 +0200 |
commit | f74a60f130204bb85d22e9f485d690abd278a552 (patch) | |
tree | 2df221c361742fdcfcf9fbdda0e1353427b182fb | |
parent | 5aaf45181ef9f125664cf57fb8da679df640a255 (diff) | |
download | stable-queue-f74a60f130204bb85d22e9f485d690abd278a552.tar.gz |
5.10-stable patches
added patches:
s390-pci-fix-__pcilg_mio_inuser-inline-assembly.patch
-rw-r--r-- | queue-5.10/s390-pci-fix-__pcilg_mio_inuser-inline-assembly.patch | 45 | ||||
-rw-r--r-- | queue-5.10/series | 1 |
2 files changed, 46 insertions, 0 deletions
diff --git a/queue-5.10/s390-pci-fix-__pcilg_mio_inuser-inline-assembly.patch b/queue-5.10/s390-pci-fix-__pcilg_mio_inuser-inline-assembly.patch new file mode 100644 index 00000000000..c1fd1da97c3 --- /dev/null +++ b/queue-5.10/s390-pci-fix-__pcilg_mio_inuser-inline-assembly.patch @@ -0,0 +1,45 @@ +From c4abe6234246c75cdc43326415d9cff88b7cf06c Mon Sep 17 00:00:00 2001 +From: Heiko Carstens <hca@linux.ibm.com> +Date: Mon, 19 May 2025 18:07:11 +0200 +Subject: s390/pci: Fix __pcilg_mio_inuser() inline assembly + +From: Heiko Carstens <hca@linux.ibm.com> + +commit c4abe6234246c75cdc43326415d9cff88b7cf06c 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: f058599e22d5 ("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> +--- + arch/s390/pci/pci_mmio.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/s390/pci/pci_mmio.c ++++ b/arch/s390/pci/pci_mmio.c +@@ -229,7 +229,7 @@ static inline int __pcilg_mio_inuser( + : + [cc] "+d" (cc), [val] "=d" (val), [len] "+d" (len), + [dst] "+a" (dst), [cnt] "+d" (cnt), [tmp] "=d" (tmp), +- [shift] "+d" (shift) ++ [shift] "+a" (shift) + : + [ioaddr] "a" (addr) + : "cc", "memory"); diff --git a/queue-5.10/series b/queue-5.10/series index 0e5174c680b..2c92b6da397 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -347,3 +347,4 @@ net_sched-sch_sfq-move-the-limit-validation.patch mm-huge_memory-fix-dereferencing-invalid-pmd-migration-entry.patch hwmon-occ-fix-p10-vrm-temp-sensors.patch rtc-test-fix-invalid-format-specifier.patch +s390-pci-fix-__pcilg_mio_inuser-inline-assembly.patch |