| From 17a17d0ebc8fc50e4a0f9bfd0dae8bfa7d7e81a9 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 10 Jan 2026 12:00:08 +0800 |
| Subject: x86/xen/pvh: Enable PAE mode for 32-bit guest only when |
| CONFIG_X86_PAE is set |
| |
| From: Hou Wenlong <houwenlong.hwl@antgroup.com> |
| |
| [ Upstream commit db9aded979b491a24871e1621cd4e8822dbca859 ] |
| |
| The PVH entry is available for 32-bit KVM guests, and 32-bit KVM guests |
| do not depend on CONFIG_X86_PAE. However, mk_early_pgtbl_32() builds |
| different pagetables depending on whether CONFIG_X86_PAE is set. |
| Therefore, enabling PAE mode for 32-bit KVM guests without |
| CONFIG_X86_PAE being set would result in a boot failure during CR3 |
| loading. |
| |
| Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com> |
| Reviewed-by: Juergen Gross <jgross@suse.com> |
| Signed-off-by: Juergen Gross <jgross@suse.com> |
| Message-ID: <d09ce9a134eb9cbc16928a5b316969f8ba606b81.1768017442.git.houwenlong.hwl@antgroup.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/x86/platform/pvh/head.S | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/arch/x86/platform/pvh/head.S b/arch/x86/platform/pvh/head.S |
| index b3e3f64d436d8..56376fb4b3ae8 100644 |
| --- a/arch/x86/platform/pvh/head.S |
| +++ b/arch/x86/platform/pvh/head.S |
| @@ -69,10 +69,12 @@ SYM_CODE_START_LOCAL(pvh_start_xen) |
| |
| mov $_pa(early_stack_end), %esp |
| |
| +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) |
| /* Enable PAE mode. */ |
| mov %cr4, %eax |
| orl $X86_CR4_PAE, %eax |
| mov %eax, %cr4 |
| +#endif |
| |
| #ifdef CONFIG_X86_64 |
| /* Enable Long mode. */ |
| -- |
| 2.51.0 |
| |