Skip to content

Commit 610c708

Browse files
fengidrimstsirkin
authored andcommitted
virtio_ring: check use_dma_api before unmap desc for indirect
Inside detach_buf_split(), if use_dma_api is false, vring_unmap_one_split_indirect will be called many times, but actually nothing is done. So this patch check use_dma_api firstly. Signed-off-by: Xuan Zhuo <[email protected]> Acked-by: Jason Wang <[email protected]> Message-Id: <[email protected]> Signed-off-by: Michael S. Tsirkin <[email protected]>
1 parent 2c9c637 commit 610c708

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/virtio/virtio_ring.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -774,8 +774,10 @@ static void detach_buf_split(struct vring_virtqueue *vq, unsigned int head,
774774
VRING_DESC_F_INDIRECT));
775775
BUG_ON(len == 0 || len % sizeof(struct vring_desc));
776776

777-
for (j = 0; j < len / sizeof(struct vring_desc); j++)
778-
vring_unmap_one_split_indirect(vq, &indir_desc[j]);
777+
if (vq->use_dma_api) {
778+
for (j = 0; j < len / sizeof(struct vring_desc); j++)
779+
vring_unmap_one_split_indirect(vq, &indir_desc[j]);
780+
}
779781

780782
kfree(indir_desc);
781783
vq->split.desc_state[head].indir_desc = NULL;

0 commit comments

Comments
 (0)