9dd7462461
by cherry-picking the relevant commits from launchpad/lunar [0]. (relevant commits are based on k.o/stable commits for this) minimally tested by booting my (ryzen) machine with this kernel and skimming through dmesg after boot. [0] git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/lunar Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
77 lines
2.8 KiB
Diff
77 lines
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Gleixner <tglx@linutronix.de>
|
|
Date: Wed, 14 Jun 2023 01:39:43 +0200
|
|
Subject: [PATCH] x86/fpu: Remove cpuinfo argument from init functions
|
|
|
|
Nothing in the call chain requires it
|
|
|
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
Link: https://lore.kernel.org/r/20230613224545.783704297@linutronix.de
|
|
|
|
(cherry picked from commit 1f34bb2a24643e0087652d81078e4f616562738d)
|
|
CVE-2022-40982
|
|
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
|
|
Acked-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
|
|
Acked-by: Stefan Bader <stefan.bader@canonical.com>
|
|
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
|
|
(cherry picked from commit df2f3fc430e187551eb4aaa14aa21640d7ef44ca)
|
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
|
---
|
|
arch/x86/include/asm/fpu/api.h | 2 +-
|
|
arch/x86/kernel/cpu/common.c | 2 +-
|
|
arch/x86/kernel/fpu/init.c | 6 +++---
|
|
3 files changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h
|
|
index 503a577814b2..b475d9a582b8 100644
|
|
--- a/arch/x86/include/asm/fpu/api.h
|
|
+++ b/arch/x86/include/asm/fpu/api.h
|
|
@@ -109,7 +109,7 @@ extern void fpu_reset_from_exception_fixup(void);
|
|
|
|
/* Boot, hotplug and resume */
|
|
extern void fpu__init_cpu(void);
|
|
-extern void fpu__init_system(struct cpuinfo_x86 *c);
|
|
+extern void fpu__init_system(void);
|
|
extern void fpu__init_check_bugs(void);
|
|
extern void fpu__resume_cpu(void);
|
|
|
|
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
|
|
index 256083661fb2..794eb851cb0d 100644
|
|
--- a/arch/x86/kernel/cpu/common.c
|
|
+++ b/arch/x86/kernel/cpu/common.c
|
|
@@ -1596,7 +1596,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
|
|
|
|
sld_setup(c);
|
|
|
|
- fpu__init_system(c);
|
|
+ fpu__init_system();
|
|
|
|
#ifdef CONFIG_X86_32
|
|
/*
|
|
diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
|
|
index 851eb13edc01..5001df943828 100644
|
|
--- a/arch/x86/kernel/fpu/init.c
|
|
+++ b/arch/x86/kernel/fpu/init.c
|
|
@@ -71,7 +71,7 @@ static bool fpu__probe_without_cpuid(void)
|
|
return fsw == 0 && (fcw & 0x103f) == 0x003f;
|
|
}
|
|
|
|
-static void fpu__init_system_early_generic(struct cpuinfo_x86 *c)
|
|
+static void fpu__init_system_early_generic(void)
|
|
{
|
|
if (!boot_cpu_has(X86_FEATURE_CPUID) &&
|
|
!test_bit(X86_FEATURE_FPU, (unsigned long *)cpu_caps_cleared)) {
|
|
@@ -211,10 +211,10 @@ static void __init fpu__init_system_xstate_size_legacy(void)
|
|
* Called on the boot CPU once per system bootup, to set up the initial
|
|
* FPU state that is later cloned into all processes:
|
|
*/
|
|
-void __init fpu__init_system(struct cpuinfo_x86 *c)
|
|
+void __init fpu__init_system(void)
|
|
{
|
|
fpstate_reset(¤t->thread.fpu);
|
|
- fpu__init_system_early_generic(c);
|
|
+ fpu__init_system_early_generic();
|
|
|
|
/*
|
|
* The FPU has to be operational for some of the
|