summaryrefslogtreecommitdiff
path: root/arch/s390/include/asm/fpu-types.h
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2024-02-03 13:45:15 +0300
committerHeiko Carstens <hca@linux.ibm.com>2024-02-16 16:30:16 +0300
commitbdbd3acb33f5b09b99d75b0f0edeb7db98a05c89 (patch)
treeb1589fdea4b9301980671fb803ea19d9695149be /arch/s390/include/asm/fpu-types.h
parent9cbff7f2214d16af5c10f1f55ac72d4c1a8bd787 (diff)
downloadlinux-bdbd3acb33f5b09b99d75b0f0edeb7db98a05c89.tar.xz
s390/fpu: remove anonymous union from struct fpu
The anonymous union within struct fpu contains a floating point register array and a vector register array. Given that the vector register is always present remove the floating point register array. For configurations without vector registers save the floating point register contents within their corresponding vector register location. This allows to remove the union, and also to simplify ptrace and perf code. Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/fpu-types.h')
-rw-r--r--arch/s390/include/asm/fpu-types.h14
1 files changed, 3 insertions, 11 deletions
diff --git a/arch/s390/include/asm/fpu-types.h b/arch/s390/include/asm/fpu-types.h
index f5b6fab30401..8e6927c23bdc 100644
--- a/arch/s390/include/asm/fpu-types.h
+++ b/arch/s390/include/asm/fpu-types.h
@@ -12,23 +12,15 @@
#include <asm/sigcontext.h>
struct fpu {
- __u32 fpc; /* Floating-point control */
- union {
- /* Floating-point register save area */
- freg_t fprs[__NUM_FPRS];
- /* Vector register save area */
- __vector128 vxrs[__NUM_VXRS];
- };
+ u32 fpc;
+ __vector128 vxrs[__NUM_VXRS] __aligned(8);
};
/* In-kernel FPU state structure */
struct kernel_fpu {
int mask;
u32 fpc;
- union {
- freg_t fprs[__NUM_FPRS];
- __vector128 vxrs[__NUM_VXRS];
- };
+ __vector128 vxrs[__NUM_VXRS] __aligned(8);
};
#define DECLARE_KERNEL_FPU_ONSTACK(name) \