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.ostrov...@oracle.com> --- Changes in v2: * Use cpuid_ebx() instead of cpuid() arch/x86/xen/enlighten.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index c82fe14..6463382 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -1791,20 +1791,32 @@ void __ref xen_hvm_init_shared_info(void) static void __init init_hvm_pv_info(void) { int major, minor; - uint32_t eax, ebx, ecx, edx, pages, msr, base; - u64 pfn; + uint32_t eax, ebx, ecx, edx, msr, base; base = xen_cpuid_base(); - cpuid(base + 1, &eax, &ebx, &ecx, &edx); + eax = cpuid_eax(base + 1); major = eax >> 16; 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 { + u64 pfn; + + pv_info.name = "Xen HVM"; + msr = cpuid_ebx(base + 2); + pfn = __pa(hypercall_page); + wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32)); + } xen_setup_features(); @@ -1813,10 +1825,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; } #endif @@ -1892,6 +1900,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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel