diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index 4f3f94d..5d00ff7 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -147,10 +147,13 @@ void nvmx_vcpu_destroy(struct vcpu *v) nvcpu->nv_n2vmcx = NULL; } - list_for_each_entry_safe(item, n, &nvmx->launched_list, node) + if ( nvmx->launched_list.next ) { - list_del(&item->node); - xfree(item); + list_for_each_entry_safe(item, n, &nvmx->launched_list, node) + { + list_del(&item->node); + xfree(item); + } } if ( v->arch.hvm_vmx.vmread_bitmap )