Re: [Xen-devel] [PATCH v5 09/10] vring: Use the DMA API on Xen

From: Michael S. Tsirkin
Date: Sun Jan 31 2016 - 15:10:23 EST


On Fri, Jan 29, 2016 at 10:34:59AM +0000, David Vrabel wrote:
> On 29/01/16 02:31, Andy Lutomirski wrote:
> > Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
> > ---
> > drivers/virtio/virtio_ring.c | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> > index c169c6444637..305c05cc249a 100644
> > --- a/drivers/virtio/virtio_ring.c
> > +++ b/drivers/virtio/virtio_ring.c
> > @@ -47,6 +47,18 @@
> >
> > static bool vring_use_dma_api(void)
> > {
> > +#if defined(CONFIG_X86) && defined(CONFIG_XEN)
> > + /*
> > + * In theory, it's possible to have a buggy QEMU-supposed
> > + * emulated Q35 IOMMU and Xen enabled at the same time. On
> > + * such a configuration, virtio has never worked and will
> > + * not work without an even larger kludge. Instead, enable
> > + * the DMA API if we're a Xen guest, which at least allows
> > + * all of the sensible Xen configurations to work correctly.
> > + */
> > + return static_cpu_has(X86_FEATURE_XENPV);
>
> You want:
>
> if (xen_domain())
> return true;
>
> Without the #if so we use the DMA API for all types of Xen guest on all
> architectures.
>
> David

I doubt HVM domains can have virtio devices.

--
MST