[VMX] Fix use of VMCLEAR a little: no need if not active on any CPU.

Signed-off-by: Keir Fraser <keir@xensource.com>
This commit is contained in:
kaf24@firebug.cl.cam.ac.uk committed 2006-06-22 15:25:18 +01:00
1 parent 66091ed16b
commit df3f613e31
1 file changed
+10 -5
+10 -5
View File
@@ -74,12 +74,15 @@ static void __vmx_clear_vmcs(void *info)
static void vmx_clear_vmcs(struct vcpu *v)
{
unsigned int cpu = v->arch.hvm_vmx.active_cpu;
int cpu = v->arch.hvm_vmx.active_cpu;
if ( (cpu == -1) || (cpu == smp_processor_id()) )
__vmx_clear_vmcs(v);
else
on_selected_cpus(cpumask_of_cpu(cpu), __vmx_clear_vmcs, v, 1, 1);
if ( cpu == -1 )
return;
if ( cpu == smp_processor_id() )
return __vmx_clear_vmcs(v);
on_selected_cpus(cpumask_of_cpu(cpu), __vmx_clear_vmcs, v, 1, 1);
}
static void vmx_load_vmcs(struct vcpu *v)
@@ -97,6 +100,8 @@ void vmx_vmcs_enter(struct vcpu *v)
* context initialisation.
* 2. VMPTRLD as soon as we context-switch to a HVM VCPU.
* 3. VMCS destruction needs to happen later (from domain_destroy()).
* We can relax this a bit if a paused VCPU always commits its
* architectural state to a software structure.
*/
if ( v == current )
return;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.