History

vfio/type1: Fix vfio_find_dma_valid return

vfio_find_dma_valid is defined to return WAITED on success if it was necessary to wait. However, the loop forgets the WAITED value returned by vfio_wait() and returns 0 in a later iteration. Fix it.

Anthony Yznaga committed 5 years ago

Commit ffc95d11 parent eb24c101 file · +4 −4Browse files

Unified · Split

drivers/vfio/vfio_iommu_type1.c+4−4
@@ -612,17 +612,17 @@ static int vfio_wait(struct vfio_iommu *iommu) · 611 unmodified lines
612static int vfio_find_dma_valid(struct vfio_iommu *iommu, dma_addr_t start,612static int vfio_find_dma_valid(struct vfio_iommu *iommu, dma_addr_t start,
613 size_t size, struct vfio_dma **dma_p)613 size_t size, struct vfio_dma **dma_p)
614{614{
615 int ret;615 int ret = 0;
616 616
617 do {617 do {
618 *dma_p = vfio_find_dma(iommu, start, size);618 *dma_p = vfio_find_dma(iommu, start, size);
619 if (!*dma_p)619 if (!*dma_p)
620 ret = -EINVAL;620 return -EINVAL;
621 else if (!(*dma_p)->vaddr_invalid)621 else if (!(*dma_p)->vaddr_invalid)
622 ret = 0;622 return ret;
623 else623 else
624 ret = vfio_wait(iommu);624 ret = vfio_wait(iommu);
625 } while (ret > 0);625 } while (ret == WAITED);
626 626
627 return ret;627 return ret;
628}628}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t