diff options
Diffstat (limited to '0004-x86-dom0-fix-restoring-cr3-and-the-mapcache-override.patch')
-rw-r--r-- | 0004-x86-dom0-fix-restoring-cr3-and-the-mapcache-override.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/0004-x86-dom0-fix-restoring-cr3-and-the-mapcache-override.patch b/0004-x86-dom0-fix-restoring-cr3-and-the-mapcache-override.patch new file mode 100644 index 0000000..40dbb9f --- /dev/null +++ b/0004-x86-dom0-fix-restoring-cr3-and-the-mapcache-override.patch @@ -0,0 +1,38 @@ +From adf1939b51a0a2fa596f7acca0989bfe56cab307 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com> +Date: Thu, 8 Aug 2024 13:45:28 +0200 +Subject: [PATCH 04/35] x86/dom0: fix restoring %cr3 and the mapcache override + on PV build error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +One of the error paths in the PV dom0 builder section that runs on the guest +page-tables wasn't restoring the Xen value of %cr3, neither removing the +mapcache override. + +Fixes: 079ff2d32c3d ('libelf-loader: introduce elf_load_image') +Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> +Reviewed-by: Jan Beulich <jbeulich@suse.com> +master commit: 1fc3f77113dd43b14fa7ef5936dcdba120c0b63f +master date: 2024-07-31 12:41:02 +0200 +--- + xen/arch/x86/pv/dom0_build.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c +index d8043fa58a..57e58a02e7 100644 +--- a/xen/arch/x86/pv/dom0_build.c ++++ b/xen/arch/x86/pv/dom0_build.c +@@ -825,6 +825,8 @@ int __init dom0_construct_pv(struct domain *d, + rc = elf_load_binary(&elf); + if ( rc < 0 ) + { ++ mapcache_override_current(NULL); ++ switch_cr3_cr4(current->arch.cr3, read_cr4()); + printk("Failed to load the kernel binary\n"); + goto out; + } +-- +2.46.1 + |