|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/4] nested vmx: Use a list to store the launched vvmcs for L1 VMM
>>> On 17.01.13 at 06:37, Dongxiao Xu <dongxiao.xu@xxxxxxxxx> wrote:
> @@ -74,6 +77,11 @@ void nvmx_vcpu_destroy(struct vcpu *v)
> free_xenheap_page(nvcpu->nv_n2vmcx);
> nvcpu->nv_n2vmcx = NULL;
> }
> +
> + list_for_each_entry_safe(item, n, &nvmx->launched_list, node) {
Misplaced brace.
> + list_del(&item->node);
> + xfree(item);
> + }
> }
>
> void nvmx_domain_relinquish_resources(struct domain *d)
> @@ -1198,6 +1206,59 @@ int nvmx_handle_vmxoff(struct cpu_user_regs *regs)
> return X86EMUL_OKAY;
> }
>
> +static int vvmcs_launched(struct list_head *launched_list, paddr_t vvmcs_pa)
Returning bool_t really?
> +{
> + struct vvmcs_list *vvmcs = NULL;
Pointless initializer.
> + struct list_head *pos;
> + int launched = 0;
bool_t?
> @@ -1230,8 +1293,8 @@ int nvmx_handle_vmresume(struct cpu_user_regs *regs)
> return X86EMUL_OKAY;
> }
>
> - launched = __get_vvmcs(vcpu_nestedhvm(v).nv_vvmcx,
> - NVMX_LAUNCH_STATE);
> + launched = vvmcs_launched(&nvmx->launched_list,
> + virt_to_maddr(nvcpu->nv_vvmcx));
nv_vvmcx is obtained through hvm_map_guest_frame_rw(), so
you can't validly use virt_to_maddr() on it. I know there are other
examples of this in the code, but they're all wrong and will all get
fixed once I get to submit the 16Tb support patches.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |