[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 2/4] x86/hvm: Revert 80ecb40362365ba77e68fc609de8bd3b7208ae19
The Solaris bug that commit 80ecb40362365ba77e68fc609de8bd3b7208ae19 addressed has been fixed and backported to earlier releases. Those still using those releases can specify number of hypervisor leaves explicitly via 'cpuid' xl config option. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> --- xen/arch/x86/traps.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index e1f39d9..75a0ceb 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -677,17 +677,10 @@ int cpuid_hypervisor_leaves( uint32_t idx, uint32_t sub_idx, struct domain *d = current->domain; /* Optionally shift out of the way of Viridian architectural leaves. */ uint32_t base = is_viridian_domain(d) ? 0x40000100 : 0x40000000; - uint32_t limit; idx -= base; - /* - * Some Solaris PV drivers fail if max > base + 2. Help them out by - * hiding the PVRDTSCP leaf if PVRDTSCP is disabled. - */ - limit = (d->arch.tsc_mode < TSC_MODE_PVRDTSCP) ? 2 : 3; - - if ( idx > limit ) + if ( idx > 3 ) return 0; if ( domain_cpuid_exists(d, base + idx, sub_idx, eax, ebx, ecx, edx) ) @@ -696,7 +689,7 @@ int cpuid_hypervisor_leaves( uint32_t idx, uint32_t sub_idx, switch ( idx ) { case 0: - *eax = base + limit; /* Largest leaf */ + *eax = base + 3; /* Largest leaf */ *ebx = XEN_CPUID_SIGNATURE_EBX; *ecx = XEN_CPUID_SIGNATURE_ECX; *edx = XEN_CPUID_SIGNATURE_EDX; -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |