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
612612 static int vfio_find_dma_valid(struct vfio_iommu *iommu, dma_addr_t start,
613613 size_t size, struct vfio_dma **dma_p)
614614 {
615− int ret;
615+ int ret = 0;
616616
617617 do {
618618 *dma_p = vfio_find_dma(iommu, start, size);
619619 if (!*dma_p)
620− ret = -EINVAL;
620+ return -EINVAL;
621621 else if (!(*dma_p)->vaddr_invalid)
622− ret = 0;
622+ return ret;
623623 else
624624 ret = vfio_wait(iommu);
625− } while (ret > 0);
625+ } while (ret == WAITED);
626626
627627 return ret;
628628 }

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