lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A5F4945.3080202@us.ibm.com>
Date:	Thu, 16 Jul 2009 10:37:41 -0500
From:	Anthony Liguori <aliguori@...ibm.com>
To:	Gregory Haskins <ghaskins@...ell.com>
CC:	kvm@...r.kernel.org, linux-kernel@...r.kernel.org, avi@...hat.com,
	glommer@...hat.com
Subject: Re: [KVM PATCH] KVM: introduce "xinterface" API for external interaction
 with guests

Gregory Haskins wrote:
> +/*
> + * ------------
> + * XINTERFACE (External Interface)
> + * -------------
> + */
> +
> +static struct kvm *
> +intf_to_kvm(struct kvm_xinterface *intf)
> +{
> +	return container_of(intf, struct kvm, xinterface);
> +}
> +
> +static unsigned long
> +xinterface_gpa_to_hva(struct kvm_xinterface *intf, unsigned long gpa)
> +{
> +	struct kvm *kvm = intf_to_kvm(intf);
> +	unsigned long addr;
> +
> +	addr = gfn_to_hva(kvm, gpa >> PAGE_SHIFT);
> +	if (kvm_is_error_hva(addr))
> +		return 0;
> +
> +	return addr + offset_in_page(gpa);
> +}
> +
> +static struct page *
> +xinterface_gpa_to_page(struct kvm_xinterface *intf, unsigned long gpa)
> +{
> +	struct kvm *kvm = intf_to_kvm(intf);
> +	struct page *page;
> +
> +	page = gfn_to_page(kvm, gpa >> PAGE_SHIFT);
> +	if (page == bad_page)
> +		return ERR_PTR(-EINVAL);
> +
> +	return page;
> +}
> +
> +static void
> +xinterface_release(struct kvm_xinterface *intf)
> +{
> +	struct kvm *kvm = intf_to_kvm(intf);
> +
> +	kvm_put_kvm(kvm);
> +}
> +
> +struct kvm_xinterface_ops _kvm_xinterface_ops = {
> +	.gpa_to_hva  = xinterface_gpa_to_hva,
> +	.gpa_to_page = xinterface_gpa_to_page,
> +	.release     = xinterface_release,
> +};
>   

How do you deal with locking?

The mappings (gpa_to_page) are not fixed.  They can and do change very 
often.  The interface doesn't seem to attempt to cope with this.

Regards,

Anthony Liguori
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ