From c038b984a9af1010555986d6fe32d4da9db9fc3d Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Sat, 3 Feb 2024 11:45:11 +0100 Subject: [PATCH] s390/fpu: change type of fpu mask from u32 to int Change type of fpu mask consistently from u32 to int. This is a prerequisite to make the kernel fpu usage preemptible. Upcoming code uses __atomic* ops which work with int pointers. Reviewed-by: Claudio Imbrenda Signed-off-by: Heiko Carstens --- arch/s390/include/asm/fpu-types.h | 2 +- arch/s390/include/asm/fpu.h | 8 ++++---- arch/s390/kernel/fpu.c | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/s390/include/asm/fpu-types.h b/arch/s390/include/asm/fpu-types.h index 743858dbc7fbd..fee4468a85d38 100644 --- a/arch/s390/include/asm/fpu-types.h +++ b/arch/s390/include/asm/fpu-types.h @@ -24,7 +24,7 @@ struct fpu { /* In-kernel FPU state structure */ struct kernel_fpu { - u32 mask; + int mask; u32 fpc; union { freg_t fprs[__NUM_FPRS]; diff --git a/arch/s390/include/asm/fpu.h b/arch/s390/include/asm/fpu.h index 5d3533569925b..447d68fb41b2d 100644 --- a/arch/s390/include/asm/fpu.h +++ b/arch/s390/include/asm/fpu.h @@ -89,8 +89,8 @@ enum { * * Prefer using the kernel_fpu_begin()/kernel_fpu_end() pair of functions. */ -void __kernel_fpu_begin(struct kernel_fpu *state, u32 flags); -void __kernel_fpu_end(struct kernel_fpu *state, u32 flags); +void __kernel_fpu_begin(struct kernel_fpu *state, int flags); +void __kernel_fpu_end(struct kernel_fpu *state, int flags); static __always_inline void save_vx_regs(__vector128 *vxrs) { @@ -144,7 +144,7 @@ static __always_inline void load_fp_regs(freg_t *fprs) fpu_ld(15, &fprs[15]); } -static inline void kernel_fpu_begin(struct kernel_fpu *state, u32 flags) +static inline void kernel_fpu_begin(struct kernel_fpu *state, int flags) { preempt_disable(); state->mask = S390_lowcore.fpu_flags; @@ -158,7 +158,7 @@ static inline void kernel_fpu_begin(struct kernel_fpu *state, u32 flags) S390_lowcore.fpu_flags |= flags; } -static inline void kernel_fpu_end(struct kernel_fpu *state, u32 flags) +static inline void kernel_fpu_end(struct kernel_fpu *state, int flags) { S390_lowcore.fpu_flags = state->mask; if (state->mask & flags) { diff --git a/arch/s390/kernel/fpu.c b/arch/s390/kernel/fpu.c index 62c9b28090573..b976da5bf71bc 100644 --- a/arch/s390/kernel/fpu.c +++ b/arch/s390/kernel/fpu.c @@ -10,10 +10,10 @@ #include #include -void __kernel_fpu_begin(struct kernel_fpu *state, u32 flags) +void __kernel_fpu_begin(struct kernel_fpu *state, int flags) { __vector128 *vxrs = state->vxrs; - u32 mask; + int mask; /* * Limit the save to the FPU/vector registers already @@ -58,10 +58,10 @@ void __kernel_fpu_begin(struct kernel_fpu *state, u32 flags) } EXPORT_SYMBOL(__kernel_fpu_begin); -void __kernel_fpu_end(struct kernel_fpu *state, u32 flags) +void __kernel_fpu_end(struct kernel_fpu *state, int flags) { __vector128 *vxrs = state->vxrs; - u32 mask; + int mask; /* * Limit the restore to the FPU/vector registers of the -- 2.39.5