在 2022/2/10 下午4:51, Xuan Zhuo 写道:
When calling vring_unmap_desc_packed(), it will not encounter the
situation that the flags contains VRING_DESC_F_INDIRECT. So remove this
logic.


This seems not correct.

There's a call from detach_buf_packed() that can work for indirect descriptors?

Thanks



Signed-off-by: Xuan Zhuo <[email protected]>
---
  drivers/virtio/virtio_ring.c | 18 +++++-------------
  1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index fadd0a7503e9..cfb028ca238e 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -1009,19 +1009,11 @@ static void vring_unmap_desc_packed(const struct 
vring_virtqueue *vq,
flags = le16_to_cpu(desc->flags); - if (flags & VRING_DESC_F_INDIRECT) {
-               dma_unmap_single(vring_dma_dev(vq),
-                                le64_to_cpu(desc->addr),
-                                le32_to_cpu(desc->len),
-                                (flags & VRING_DESC_F_WRITE) ?
-                                DMA_FROM_DEVICE : DMA_TO_DEVICE);
-       } else {
-               dma_unmap_page(vring_dma_dev(vq),
-                              le64_to_cpu(desc->addr),
-                              le32_to_cpu(desc->len),
-                              (flags & VRING_DESC_F_WRITE) ?
-                              DMA_FROM_DEVICE : DMA_TO_DEVICE);
-       }
+       dma_unmap_page(vring_dma_dev(vq),
+                      le64_to_cpu(desc->addr),
+                      le32_to_cpu(desc->len),
+                      (flags & VRING_DESC_F_WRITE) ?
+                      DMA_FROM_DEVICE : DMA_TO_DEVICE);
  }
static struct vring_packed_desc *alloc_indirect_packed(unsigned int total_sg,

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to