x86/fpu: Get rid of using_compacted_format()
This function is pointlessly global and a complete misnomer because it's usage is related to both supervisor state checks and compacted format checks. Remove it and just make the conditions check the XSAVES feature. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20210623121453.425493349@linutronix.de
This commit is contained in:
parent
dbb60ac764
commit
02b93c0b00
@ -101,7 +101,6 @@ extern void __init update_regset_xstate_info(unsigned int size,
|
|||||||
u64 xstate_mask);
|
u64 xstate_mask);
|
||||||
|
|
||||||
void *get_xsave_addr(struct xregs_state *xsave, int xfeature_nr);
|
void *get_xsave_addr(struct xregs_state *xsave, int xfeature_nr);
|
||||||
int using_compacted_format(void);
|
|
||||||
int xfeature_size(int xfeature_nr);
|
int xfeature_size(int xfeature_nr);
|
||||||
int copy_kernel_to_xstate(struct xregs_state *xsave, const void *kbuf);
|
int copy_kernel_to_xstate(struct xregs_state *xsave, const void *kbuf);
|
||||||
int copy_user_to_xstate(struct xregs_state *xsave, const void __user *ubuf);
|
int copy_user_to_xstate(struct xregs_state *xsave, const void __user *ubuf);
|
||||||
|
@ -449,20 +449,6 @@ int xfeature_size(int xfeature_nr)
|
|||||||
return eax;
|
return eax;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* 'XSAVES' implies two different things:
|
|
||||||
* 1. saving of supervisor/system state
|
|
||||||
* 2. using the compacted format
|
|
||||||
*
|
|
||||||
* Use this function when dealing with the compacted format so
|
|
||||||
* that it is obvious which aspect of 'XSAVES' is being handled
|
|
||||||
* by the calling code.
|
|
||||||
*/
|
|
||||||
int using_compacted_format(void)
|
|
||||||
{
|
|
||||||
return boot_cpu_has(X86_FEATURE_XSAVES);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Validate an xstate header supplied by userspace (ptrace or sigreturn) */
|
/* Validate an xstate header supplied by userspace (ptrace or sigreturn) */
|
||||||
static int validate_user_xstate_header(const struct xstate_header *hdr)
|
static int validate_user_xstate_header(const struct xstate_header *hdr)
|
||||||
{
|
{
|
||||||
@ -581,9 +567,9 @@ static void do_extra_xstate_size_checks(void)
|
|||||||
check_xstate_against_struct(i);
|
check_xstate_against_struct(i);
|
||||||
/*
|
/*
|
||||||
* Supervisor state components can be managed only by
|
* Supervisor state components can be managed only by
|
||||||
* XSAVES, which is compacted-format only.
|
* XSAVES.
|
||||||
*/
|
*/
|
||||||
if (!using_compacted_format())
|
if (!cpu_feature_enabled(X86_FEATURE_XSAVES))
|
||||||
XSTATE_WARN_ON(xfeature_is_supervisor(i));
|
XSTATE_WARN_ON(xfeature_is_supervisor(i));
|
||||||
|
|
||||||
/* Align from the end of the previous feature */
|
/* Align from the end of the previous feature */
|
||||||
@ -593,9 +579,9 @@ static void do_extra_xstate_size_checks(void)
|
|||||||
* The offset of a given state in the non-compacted
|
* The offset of a given state in the non-compacted
|
||||||
* format is given to us in a CPUID leaf. We check
|
* format is given to us in a CPUID leaf. We check
|
||||||
* them for being ordered (increasing offsets) in
|
* them for being ordered (increasing offsets) in
|
||||||
* setup_xstate_features().
|
* setup_xstate_features(). XSAVES uses compacted format.
|
||||||
*/
|
*/
|
||||||
if (!using_compacted_format())
|
if (!cpu_feature_enabled(X86_FEATURE_XSAVES))
|
||||||
paranoid_xstate_size = xfeature_uncompacted_offset(i);
|
paranoid_xstate_size = xfeature_uncompacted_offset(i);
|
||||||
/*
|
/*
|
||||||
* The compacted-format offset always depends on where
|
* The compacted-format offset always depends on where
|
||||||
|
Loading…
Reference in New Issue
Block a user