Moving the call of fpu__init_cpu() from cpu_init() to start_secondary()
broke Xen PV guests, as those don't call start_secondary() for APs.
Fix that by adding the call of fpu__init_cpu() to cpu_bringup(), which
is the Xen PV replacement of start_secondary().
Fixes: b81fac906a8f ("x86/fpu: Move FPU initialization into arch_cpu_finalize_init()")
Signed-off-by: Juergen Gross <[email protected]>
---
arch/x86/xen/smp_pv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c
index d5ae5de2daa2..cef78b8c89f4 100644
--- a/arch/x86/xen/smp_pv.c
+++ b/arch/x86/xen/smp_pv.c
@@ -63,6 +63,7 @@ static void cpu_bringup(void)
cr4_init();
cpuhp_ap_sync_alive();
cpu_init();
+ fpu__init_cpu();
touch_softlockup_watchdog();
/* PVH runs in ring 0 and allows us to do native syscalls. Yay! */
--
2.35.3
On 7/3/23 9:00 AM, Juergen Gross wrote:
> Moving the call of fpu__init_cpu() from cpu_init() to start_secondary()
> broke Xen PV guests, as those don't call start_secondary() for APs.
>
> Fix that by adding the call of fpu__init_cpu() to cpu_bringup(), which
> is the Xen PV replacement of start_secondary().
>
> Fixes: b81fac906a8f ("x86/fpu: Move FPU initialization into arch_cpu_finalize_init()")
> Signed-off-by: Juergen Gross <[email protected]>
Reviewed-by: Boris Ostrovsky <[email protected]>
On 03.07.23 19:51, Boris Ostrovsky wrote:
>
>
> On 7/3/23 9:00 AM, Juergen Gross wrote:
>> Moving the call of fpu__init_cpu() from cpu_init() to start_secondary()
>> broke Xen PV guests, as those don't call start_secondary() for APs.
>>
>> Fix that by adding the call of fpu__init_cpu() to cpu_bringup(), which
>> is the Xen PV replacement of start_secondary().
>>
>> Fixes: b81fac906a8f ("x86/fpu: Move FPU initialization into
>> arch_cpu_finalize_init()")
>> Signed-off-by: Juergen Gross <[email protected]>
>
>
> Reviewed-by: Boris Ostrovsky <[email protected]>
>
x86 maintainers, could this please go through the tip tree? The patch is
depending on other 6.5 patches which went in via tip.
Juergen
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: fe3e0a13e597c1c8617814bf9b42ab732db5c26e
Gitweb: https://git.kernel.org/tip/fe3e0a13e597c1c8617814bf9b42ab732db5c26e
Author: Juergen Gross <[email protected]>
AuthorDate: Mon, 03 Jul 2023 15:00:32 +02:00
Committer: Borislav Petkov (AMD) <[email protected]>
CommitterDate: Wed, 05 Jul 2023 11:44:16 +02:00
x86/xen: Fix secondary processors' FPU initialization
Moving the call of fpu__init_cpu() from cpu_init() to start_secondary()
broke Xen PV guests, as those don't call start_secondary() for APs.
Call fpu__init_cpu() in Xen's cpu_bringup(), which is the Xen PV
replacement of start_secondary().
Fixes: b81fac906a8f ("x86/fpu: Move FPU initialization into arch_cpu_finalize_init()")
Signed-off-by: Juergen Gross <[email protected]>
Signed-off-by: Borislav Petkov (AMD) <[email protected]>
Reviewed-by: Boris Ostrovsky <[email protected]>
Acked-by: Thomas Gleixner <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
arch/x86/xen/smp_pv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c
index a9cf8c8..0b6efc4 100644
--- a/arch/x86/xen/smp_pv.c
+++ b/arch/x86/xen/smp_pv.c
@@ -63,6 +63,7 @@ static void cpu_bringup(void)
cr4_init();
cpu_init();
+ fpu__init_cpu();
touch_softlockup_watchdog();
/* PVH runs in ring 0 and allows us to do native syscalls. Yay! */