Messages in this thread Patch in this message |  | | From | Boris Ostrovsky <> | Subject | [PATCH 5/8] xen/pvh: Prevent PVH guests from using PIC, RTC and IOAPIC | Date | Fri, 14 Oct 2016 14:05:15 -0400 |
| |
Make sure they don't use these devices since they are not emulated for unprivileged PVH guest.
Also don't initialize hypercall page for them in init_hvm_pv_info() since this has already been done.
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> --- arch/x86/xen/enlighten.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index d38d568..6c1a330 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -1803,10 +1803,21 @@ static void __init init_hvm_pv_info(void) minor = eax & 0xffff; printk(KERN_INFO "Xen version %d.%d.\n", major, minor); - cpuid(base + 2, &pages, &msr, &ecx, &edx); + xen_domain_type = XEN_HVM_DOMAIN; - pfn = __pa(hypercall_page); - wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32)); + /* PVH set up hypercall page earlier in xen_prepare_pvh() */ + if (xen_pvh_domain()) { + pv_info.name = "Xen PVH"; +#ifdef CONFIG_ACPI + /* No PIC or IOAPIC */ + acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM; +#endif + } else { + pv_info.name = "Xen HVM"; + cpuid(base + 2, &pages, &msr, &ecx, &edx); + pfn = __pa(hypercall_page); + wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32)); + } xen_setup_features(); @@ -1815,10 +1826,6 @@ static void __init init_hvm_pv_info(void) this_cpu_write(xen_vcpu_id, ebx); else this_cpu_write(xen_vcpu_id, smp_processor_id()); - - pv_info.name = "Xen HVM"; - - xen_domain_type = XEN_HVM_DOMAIN; } static int xen_cpu_up_prepare(unsigned int cpu) @@ -1892,6 +1899,9 @@ static void __init xen_hvm_guest_init(void) init_hvm_pv_info(); + if (xen_pvh_domain()) + x86_platform.legacy.rtc = 0; + xen_hvm_init_shared_info(); xen_panic_handler_init(); -- 1.8.3.1
|  |