-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
virtio_ring currently sends the device (usually a hypervisor) physical addresses of its I/O buffers. This is okay when DMA addresses and physical addresses are the same thing, but this isn't always the case. For example, this never works on Xen guests, and it is likely to fail if a physical "virtio" device ever ends up behind an IOMMU or swiotlb. The immediate use case for me is to enable virtio on Xen guests. For that to work, we need vring to support DMA address translation as well as a corresponding change to virtio_pci or to another driver. Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
- Loading branch information
Andy Lutomirski
authored and
Michael S. Tsirkin
committed
Mar 2, 2016
1 parent
d26c96c
commit 780bc79
Showing
3 changed files
with
183 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#ifndef _LINUX_DMA_MAPPING_H | ||
#define _LINUX_DMA_MAPPING_H | ||
|
||
#ifdef CONFIG_HAS_DMA | ||
# error Virtio userspace code does not support CONFIG_HAS_DMA | ||
#endif | ||
|
||
#define PCI_DMA_BUS_IS_PHYS 1 | ||
|
||
enum dma_data_direction { | ||
DMA_BIDIRECTIONAL = 0, | ||
DMA_TO_DEVICE = 1, | ||
DMA_FROM_DEVICE = 2, | ||
DMA_NONE = 3, | ||
}; | ||
|
||
#endif |