summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2025-01-13 13:37:03 +0100
committerAlexander Gordeev <agordeev@linux.ibm.com>2025-01-26 17:24:06 +0100
commit67e959af254fe842c7b2ba4396c931985b289ef9 (patch)
tree9dbeaa667316a5b8508d95034873a3a2d46e6384
parent718056f9d96872580f7c7cd73be1928a91924eb5 (diff)
s390/uaccess: Cleanup noinstr __put_user()/__get_user() inline assembly constraints
Remove superfluous underscores, brackets, and early clobber to make the code a bit more readable. Acked-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
-rw-r--r--arch/s390/include/asm/uaccess.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
index 95cb9dc956af..8f6170852410 100644
--- a/arch/s390/include/asm/uaccess.h
+++ b/arch/s390/include/asm/uaccess.h
@@ -99,14 +99,14 @@ __put_user_##type##_noinstr(unsigned type __user *to, \
int rc; \
\
asm volatile( \
- " lr 0,%[spec]\n" \
- "0: mvcos %[_to],%[_from],%[_size]\n" \
- "1: xr %[rc],%[rc]\n" \
+ " lr %%r0,%[spec]\n" \
+ "0: mvcos %[to],%[from],%[size]\n" \
+ "1: lhi %[rc],0\n" \
"2:\n" \
EX_TABLE_UA_FAULT(0b, 2b, %[rc]) \
EX_TABLE_UA_FAULT(1b, 2b, %[rc]) \
- : [rc] "=&d" (rc), [_to] "+Q" (*(to)) \
- : [_size] "d" (size), [_from] "Q" (*(from)), \
+ : [rc] "=d" (rc), [to] "+Q" (*to) \
+ : [size] "d" (size), [from] "Q" (*from), \
[spec] "d" (__oac_spec.val) \
: "cc", "0"); \
return rc; \
@@ -183,16 +183,16 @@ __get_user_##type##_noinstr(unsigned type *to, \
int rc; \
\
asm volatile( \
- " lr 0,%[spec]\n" \
- "0: mvcos 0(%[_to]),%[_from],%[_size]\n" \
- "1: xr %[rc],%[rc]\n" \
+ " lr %%r0,%[spec]\n" \
+ "0: mvcos 0(%[to]),%[from],%[size]\n" \
+ "1: lhi %[rc],0\n" \
"2:\n" \
- EX_TABLE_UA_LOAD_MEM(0b, 2b, %[rc], %[_to], %[_ksize]) \
- EX_TABLE_UA_LOAD_MEM(1b, 2b, %[rc], %[_to], %[_ksize]) \
- : [rc] "=&d" (rc), "=Q" (*(to)) \
- : [_size] "d" (size), [_from] "Q" (*(from)), \
- [spec] "d" (__oac_spec.val), [_to] "a" (to), \
- [_ksize] "K" (size) \
+ EX_TABLE_UA_LOAD_MEM(0b, 2b, %[rc], %[to], %[ksize]) \
+ EX_TABLE_UA_LOAD_MEM(1b, 2b, %[rc], %[to], %[ksize]) \
+ : [rc] "=d" (rc), "=Q" (*to) \
+ : [size] "d" (size), [from] "Q" (*from), \
+ [spec] "d" (__oac_spec.val), [to] "a" (to), \
+ [ksize] "K" (size) \
: "cc", "0"); \
return rc; \
} \