s390/uaccess: introduce bit field for OAC specifier
authorNico Boehr <nrb@linux.ibm.com>
Tue, 11 Jan 2022 10:00:03 +0000 (11:00 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 17 Jan 2022 13:13:09 +0000 (14:13 +0100)
commit012a224e1fa31fc256aab921f691598e03db6018
tree0b07ab1cddfd25b28e0c9c4469a9362e798c798d
parent745f5d20e7936931f924410f32d8b0e599b5990e
s390/uaccess: introduce bit field for OAC specifier

Previously, we've used  magic values to specify the OAC
(operand-access control) for mvcos.

Instead we introduce a bit field for it.

When using a bit field, we cannot use an immediate value with K
constraint anymore, since GCC older than 10 doesn't recognize
the bit field union as a compile time constant.
To make things work with older compilers,
load the OAC value through a register.

Bloat-o-meter reports a slight increase in kernel size with this change:
Total: Before=15692135, After=15693015, chg +0.01%

Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
Co-developed-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
Link: https://lore.kernel.org/r/20220111100003.743116-1-scgl@linux.ibm.com
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/uaccess.h
arch/s390/lib/uaccess.c