Commit d06241f5 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Borislav Petkov
Browse files

x86/fpu: Clean up CPU feature tests



Further disintegration of internal.h:

Move the CPU feature tests to a core header and remove the unused one.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20211015011539.401510559@linutronix.de
parent 63e81807
Loading
Loading
Loading
Loading
+0 −18
Original line number Diff line number Diff line
@@ -51,24 +51,6 @@ extern void fpu__resume_cpu(void);
# define WARN_ON_FPU(x) ({ (void)(x); 0; })
#endif

/*
 * FPU related CPU feature flag helper routines:
 */
static __always_inline __pure bool use_xsaveopt(void)
{
	return static_cpu_has(X86_FEATURE_XSAVEOPT);
}

static __always_inline __pure bool use_xsave(void)
{
	return static_cpu_has(X86_FEATURE_XSAVE);
}

static __always_inline __pure bool use_fxsr(void)
{
	return static_cpu_has(X86_FEATURE_FXSR);
}

extern union fpregs_state init_fpstate;
extern void fpstate_init_user(union fpregs_state *state);

+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <linux/hardirq.h>
#include <linux/pkeys.h>

#include "internal.h"
#include "xstate.h"

#define CREATE_TRACE_POINTS
+11 −0
Original line number Diff line number Diff line
@@ -2,6 +2,17 @@
#ifndef __X86_KERNEL_FPU_INTERNAL_H
#define __X86_KERNEL_FPU_INTERNAL_H

/* 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);
}

/* Init functions */
extern void fpu__init_prepare_fx_sw_frame(void);

+2 −0
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@
#include <asm/fpu/regset.h>
#include <asm/fpu/xstate.h>

#include "internal.h"

/*
 * The xstateregs_active() routine is the same as the regset_fpregs_active() routine,
 * as the "regset->n" for the xstate regset will be updated based on the feature