diff mbox series

x86/xen/pvh: Enable PAE mode for 32-bit guest only when CONFIG_X86_PAE is set

Message ID 8c5448eeebbba998a7fff9ed9b2f7e7f3e437967.1697792461.git.houwenlong.hwl@antgroup.com (mailing list archive)
State New, archived
Headers show
Series x86/xen/pvh: Enable PAE mode for 32-bit guest only when CONFIG_X86_PAE is set | expand

Commit Message

Hou Wenlong Oct. 20, 2023, 9:08 a.m. UTC
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>
---
 arch/x86/platform/pvh/head.S | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jürgen Groß Oct. 20, 2023, 3:39 p.m. UTC | #1
On 20.10.23 11:08, Hou Wenlong wrote:
> 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>


Juergen
diff mbox series

Patch

diff --git a/arch/x86/platform/pvh/head.S b/arch/x86/platform/pvh/head.S
index c4365a05ab83..085adb1b2313 100644
--- a/arch/x86/platform/pvh/head.S
+++ b/arch/x86/platform/pvh/head.S
@@ -70,10 +70,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. */