Messages in this thread Patch in this message | | | From | Suravee Suthikulpanit <> | Subject | [PATCH] x86/fpu: Warn only when CPU-provided sizes less than struct declaration | Date | Tue, 3 Dec 2019 04:01:28 -0500 |
| |
The current XCHECK_SZ macro warns if the XFEATURE size reported by CPUID does not match the size of kernel structure. However, depending on the hardware implementation, CPUID can report the XSAVE state size larger than the size of C structures defined for each of the XSAVE state due to padding. Such case should be safe and should not need to generate warning message.
Therefore, change the logic to warn only when the CPUID reported size is less than then size of C structure.
Fixes: ef78f2a4bf84 ("x86/fpu: Check CPU-provided sizes against struct declarations") Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Thomas Lendacky <Thomas.Lendacky@amd.com> Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> --- arch/x86/kernel/fpu/xstate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c index e5cb67d..f002115 100644 --- a/arch/x86/kernel/fpu/xstate.c +++ b/arch/x86/kernel/fpu/xstate.c @@ -523,7 +523,7 @@ static void __xstate_dump_leaves(void) #define XCHECK_SZ(sz, nr, nr_macro, __struct) do { \ if ((nr == nr_macro) && \ - WARN_ONCE(sz != sizeof(__struct), \ + WARN_ONCE(sz < sizeof(__struct), \ "%s: struct is %zu bytes, cpu state %d bytes\n", \ __stringify(nr_macro), sizeof(__struct), sz)) { \ __xstate_dump_leaves(); \ -- 1.8.3.1
| |