Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.0:Staging:B
xen
5a21a77e-x86-pv-construct-d0v0s-GDT-properly.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 5a21a77e-x86-pv-construct-d0v0s-GDT-properly.patch of Package xen
# Commit 08f27f4468eedbeccaac9fdda4ef732247efd74e # Date 2017-12-01 19:03:26 +0000 # Author Andrew Cooper <andrew.cooper3@citrix.com> # Committer Andrew Cooper <andrew.cooper3@citrix.com> xen/pv: Construct d0v0's GDT properly c/s cf6d39f8199 "x86/PV: properly populate descriptor tables" changed the GDT to reference zero_page for intermediate frames between the guest and Xen frames. Because dom0_construct_pv() doesn't call arch_set_info_guest(), some bits of initialisation are missed, including the pv_destroy_gdt() which initially fills the references to zero_page. In practice, this means there is a window between starting and the first call to HYPERCALL_set_gdt() were lar/lsl/verr/verw suffer non-architectural behaviour. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/pv/dom0_build.c +++ b/xen/arch/x86/pv/dom0_build.c @@ -18,6 +18,7 @@ #include <asm/bzimage.h> #include <asm/dom0_build.h> #include <asm/page.h> +#include <asm/pv/mm.h> #include <asm/setup.h> /* Allow ring-3 access in long mode as guest cannot use ring 1 ... */ @@ -866,6 +867,13 @@ int __init dom0_construct_pv(struct doma regs->rsi = vstartinfo_start; regs->eflags = X86_EFLAGS_IF; + /* + * We don't call arch_set_info_guest(), so some initialisation needs doing + * by hand: + * - Reset the GDT to reference zero_page + */ + pv_destroy_gdt(v); + if ( test_bit(XENFEAT_supervisor_mode_kernel, parms.f_required) ) panic("Dom0 requires supervisor-mode execution");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor