]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/xen/pvh: Enable PAE mode for 32-bit guest only when CONFIG_X86_PAE is set
authorHou Wenlong <houwenlong.hwl@antgroup.com>
Sat, 10 Jan 2026 04:00:08 +0000 (12:00 +0800)
committerJuergen Gross <jgross@suse.com>
Mon, 12 Jan 2026 12:04:37 +0000 (13:04 +0100)
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>

arch/x86/platform/pvh/head.S

index 344030c1a81d46c9a3b22f185d631ebc32bc5206..53ee2d53fcf8e1a9a372375dca7245f53a637559 100644 (file)
@@ -91,10 +91,12 @@ SYM_CODE_START(pvh_start_xen)
 
        leal rva(early_stack_end)(%ebp), %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. */