summaryrefslogtreecommitdiff
path: root/include/linux/virtio_pci_modern.h
diff options
context:
space:
mode:
authorJason Wang <jasowang@redhat.com>2021-06-04 13:53:50 +0800
committerMichael S. Tsirkin <mst@redhat.com>2021-07-08 07:49:01 -0400
commit72b5e8958738aaa453db5149e6ca3bcf416023b9 (patch)
tree68fa57d49883f293e04dc4cfff5f340618280655 /include/linux/virtio_pci_modern.h
parent5bc72234f7c65830e60806dbb73ae76bacd8a061 (diff)
virtio-ring: store DMA metadata in desc_extra for split virtqueue
For split virtqueue, we used to depend on the address, length and flags stored in the descriptor ring for DMA unmapping. This is unsafe for the case since the device can manipulate the behavior of virtio driver, IOMMU drivers and swiotlb. For safety, maintain the DMA address, DMA length, descriptor flags and next filed of the non indirect descriptors in vring_desc_state_extra when DMA API is used for virtio as we did for packed virtqueue and use those metadata for performing DMA operations. Indirect descriptors should be safe since they are using streaming mappings. With this the descriptor ring is write only form the view of the driver. This slight increase the footprint of the drive but it's not noticed through pktgen (64B) test and netperf test in the case of virtio-net. Signed-off-by: Jason Wang <jasowang@redhat.com> Link: https://lore.kernel.org/r/20210604055350.58753-8-jasowang@redhat.com Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'include/linux/virtio_pci_modern.h')
0 files changed, 0 insertions, 0 deletions