mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 01:51:34 +00:00
53599b4d54
The software reserved portion of the fxsave frame in the signal frame is copied from structures which have been set up at boot time. With dynamically enabled features the content of these structures is no longer correct because the xfeatures and size can be different per task. Calculate the software reserved portion at runtime and fill in the xfeatures and size values from the tasks active fpstate. Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20211021225527.10184-10-chang.seok.bae@intel.com
29 lines
643 B
C
29 lines
643 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __X86_KERNEL_FPU_INTERNAL_H
|
|
#define __X86_KERNEL_FPU_INTERNAL_H
|
|
|
|
extern struct fpstate init_fpstate;
|
|
|
|
/* CPU feature check wrappers */
|
|
static __always_inline __pure bool use_xsave(void)
|
|
{
|
|
return cpu_feature_enabled(X86_FEATURE_XSAVE);
|
|
}
|
|
|
|
static __always_inline __pure bool use_fxsr(void)
|
|
{
|
|
return cpu_feature_enabled(X86_FEATURE_FXSR);
|
|
}
|
|
|
|
#ifdef CONFIG_X86_DEBUG_FPU
|
|
# define WARN_ON_FPU(x) WARN_ON_ONCE(x)
|
|
#else
|
|
# define WARN_ON_FPU(x) ({ (void)(x); 0; })
|
|
#endif
|
|
|
|
/* Used in init.c */
|
|
extern void fpstate_init_user(struct fpstate *fpstate);
|
|
extern void fpstate_reset(struct fpu *fpu);
|
|
|
|
#endif
|