From: Anthony Yznaga <hidden> Date: 2021-08-20 20:39:48
Fix vfio_find_dma_valid to return WAITED on success if it was necessary
to wait which mean iommu lock was dropped and reacquired. This allows
vfio_iommu_type1_pin_pages to recheck vaddr_invalid_count and possibly
avoid the checking the validity of every vaddr in its list.
Signed-off-by: Anthony Yznaga <redacted>
---
v2:
use Alex Williamson's simplified fix
drivers/vfio/vfio_iommu_type1.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
From: Steven Sistare <hidden> Date: 2021-08-23 14:58:38
On 8/20/2021 4:39 PM, Anthony Yznaga wrote:
Fix vfio_find_dma_valid to return WAITED on success if it was necessary
to wait which mean iommu lock was dropped and reacquired. This allows
vfio_iommu_type1_pin_pages to recheck vaddr_invalid_count and possibly
avoid the checking the validity of every vaddr in its list.
Signed-off-by: Anthony Yznaga <redacted>
---
v2:
use Alex Williamson's simplified fix
Hi Anthony, thanks for finding and fixing this. I suggest you modify the commit
message to describe the bug. Something like:
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.
With that,
Reviewed-by: Steve Sistare <redacted>
- Steve
From: Anthony Yznaga <hidden> Date: 2021-08-23 16:27:49
On 8/23/21 7:58 AM, Steven Sistare wrote:
On 8/20/2021 4:39 PM, Anthony Yznaga wrote:
quoted
Fix vfio_find_dma_valid to return WAITED on success if it was necessary
to wait which mean iommu lock was dropped and reacquired. This allows
vfio_iommu_type1_pin_pages to recheck vaddr_invalid_count and possibly
avoid the checking the validity of every vaddr in its list.
Signed-off-by: Anthony Yznaga <redacted>
---
v2:
use Alex Williamson's simplified fix
Hi Anthony, thanks for finding and fixing this. I suggest you modify the commit
message to describe the bug. Something like:
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.
With that,
Reviewed-by: Steve Sistare <redacted>
Thank, Steve. I'll send out a v3 with the updated commit message.
Anthony