Skip to content

Commit c085505

Browse files
cyrillosKAGA-KOKO
authored andcommitted
x86/fpu: Shrink space allocated for xstate_comp_offsets
commit 8ff925e ("x86/xsaves: Clean up code in xstate offsets computation in xsave area") introduced an allocation of 64 entries for xstate_comp_offsets while the code only handles up to XFEATURE_MAX entries. For this reason xstate_offsets and xstate_sizes are already defined with the explicit XFEATURE_MAX limit. Do the same for compressed format for consistency sake. As the changelog of that commit is not giving any information it's assumed that the main idea was to cover all possible bits in xfeatures_mask, but this doesn't explain why other variables such as the non-compacted offsets and sizes are explicitely limited to XFEATURE_MAX. For consistency it's better to use the XFEATURE_MAX limit everywhere and extend it on demand when new features get implemented at the hardware level and subsequently supported by the kernel. Signed-off-by: Cyrill Gorcunov <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lkml.kernel.org/r/[email protected]
1 parent 58db103 commit c085505

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

arch/x86/kernel/fpu/xstate.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ u64 xfeatures_mask __read_mostly;
6060

6161
static unsigned int xstate_offsets[XFEATURE_MAX] = { [ 0 ... XFEATURE_MAX - 1] = -1};
6262
static unsigned int xstate_sizes[XFEATURE_MAX] = { [ 0 ... XFEATURE_MAX - 1] = -1};
63-
static unsigned int xstate_comp_offsets[sizeof(xfeatures_mask)*8];
63+
static unsigned int xstate_comp_offsets[XFEATURE_MAX] = { [ 0 ... XFEATURE_MAX - 1] = -1};
6464

6565
/*
6666
* The XSAVE area of kernel can be in standard or compacted format;
@@ -342,7 +342,7 @@ static int xfeature_is_aligned(int xfeature_nr)
342342
*/
343343
static void __init setup_xstate_comp(void)
344344
{
345-
unsigned int xstate_comp_sizes[sizeof(xfeatures_mask)*8];
345+
unsigned int xstate_comp_sizes[XFEATURE_MAX];
346346
int i;
347347

348348
/*

0 commit comments

Comments
 (0)