[tip: x86/fpu] x86/fpu/xstate: Use fpstate for xsave_to_user_sigframe()

From: tip-bot2 for Thomas Gleixner
Date: Thu Oct 21 2021 - 11:12:44 EST


The following commit has been merged into the x86/fpu branch of tip:

Commit-ID: 0b2d39aa03574eb401cdfaac2f483a6f68173355
Gitweb: https://git.kernel.org/tip/0b2d39aa03574eb401cdfaac2f483a6f68173355
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
AuthorDate: Wed, 13 Oct 2021 16:55:51 +02:00
Committer: Borislav Petkov <bp@xxxxxxx>
CommitterDate: Thu, 21 Oct 2021 14:04:46 +02:00

x86/fpu/xstate: Use fpstate for xsave_to_user_sigframe()

With dynamically enabled features the sigframe code must know the features
which are enabled for the task. Get them from fpstate.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Link: https://lkml.kernel.org/r/20211013145323.077781448@xxxxxxxxxxxxx
---
arch/x86/kernel/fpu/xstate.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index 24a1479..3e9eaf9 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -149,7 +149,7 @@ static inline int xsave_to_user_sigframe(struct xregs_state __user *buf)
* internally, e.g. PKRU. That's user space ABI and also required
* to allow the signal handler to modify PKRU.
*/
- u64 mask = xfeatures_mask_uabi();
+ u64 mask = current->thread.fpu.fpstate->user_xfeatures;
u32 lmask = mask;
u32 hmask = mask >> 32;
int err;