UPSTREAM: vring: Use the DMA API on Xen
Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Wei Liu <wei.liu2@citrix.com> (cherry picked from commit 78fe39872378b0bef00a91181f1947acb8a08500) Bug: 121166534 Test: Ran cuttlefish with android-4.4 + VSOCKETS, VMWARE_VMCI_VSOCKETS Signed-off-by: Alistair Strachan <astrachan@google.com> Change-Id: Ibf85aad139f319354cd2ee8833ca9434c15640d8
This commit is contained in:
parent
4323356bac
commit
77facbcf65
1 changed files with 12 additions and 0 deletions
|
@ -25,6 +25,7 @@
|
||||||
#include <linux/hrtimer.h>
|
#include <linux/hrtimer.h>
|
||||||
#include <linux/kmemleak.h>
|
#include <linux/kmemleak.h>
|
||||||
#include <linux/dma-mapping.h>
|
#include <linux/dma-mapping.h>
|
||||||
|
#include <xen/xen.h>
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
/* For development, we want to crash whenever the ring is screwed. */
|
/* For development, we want to crash whenever the ring is screwed. */
|
||||||
|
@ -131,6 +132,17 @@ struct vring_virtqueue {
|
||||||
|
|
||||||
static bool vring_use_dma_api(struct virtio_device *vdev)
|
static bool vring_use_dma_api(struct virtio_device *vdev)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
if (xen_domain())
|
||||||
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue