linux/arch/s390/lib
Heiko Carstens 87ff6da300 s390/xor: Improve inline assembly constraints
The inline assembly constraint for the "bytes" operand is "d" for all xor()
inline assemblies. "d" means that any register from 0 to 15 can be used. If
the compiler would use register 0 then the exrl instruction would not or
the value of "bytes" into the executed instruction - resulting in an
incorrect result.

However all the xor() inline assemblies make hard-coded use of register 0,
and it is correctly listed in the clobber list, so that this cannot happen.

Given that this is quite subtle use the better "a" constraint, which
excludes register 0 from register allocation in any case.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
Link: https://lore.kernel.org/r/20260302133500.1560531-3-hca@linux.ibm.com
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2026-03-03 16:42:14 +01:00
..
csum-partial.c s390/checksum: provide csum_partial_copy_nocheck() 2024-02-16 14:30:17 +01:00
delay.c s390: Explicitly include <linux/export.h> 2025-06-17 18:18:02 +02:00
error-inject.c s390: enable HAVE_FUNCTION_ERROR_INJECTION 2020-07-27 10:33:28 +02:00
expoline.S s390/expoline: Make modules use kernel expolines 2024-04-17 13:38:03 +02:00
find.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile Crypto library updates for 6.17 2025-07-28 17:58:52 -07:00
mem.S s390/lib: Use exrl instead of ex in string functions 2024-12-17 12:46:13 +01:00
probes.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spinlock.c s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
string.c s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
test_kprobes.c s390/lib: Add missing MODULE_DESCRIPTION() macros 2024-06-28 14:52:30 +02:00
test_kprobes.h kprobes: add testcases for s390 2021-10-04 09:49:37 +02:00
test_kprobes_asm.S kprobes: add testcases for s390 2021-10-04 09:49:37 +02:00
test_modules.c s390/lib: Add missing MODULE_DESCRIPTION() macros 2024-06-28 14:52:30 +02:00
test_modules.h s390/module: fix building test_modules_helpers.o with clang 2022-02-06 23:30:37 +01:00
test_modules_helpers.c s390/module: test loading modules with a lot of relocations 2022-01-24 09:10:59 +01:00
test_unwind.c s390: Remove superfluous newlines from inline assemblies 2025-09-29 13:52:08 +02:00
tishift.S s390: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-09 15:20:50 +02:00
uaccess.c KVM: s390: Switch to new gmap 2026-02-04 17:00:10 +01:00
xor.c s390/xor: Improve inline assembly constraints 2026-03-03 16:42:14 +01:00