在 2021/8/9 下午6:09, Xie Yongji 写道:
The size passed to alloc_iova() should be the size of page frames.
Now we use byte granularity for the iova domain, so it's safe to
pass the size in bytes to alloc_iova(). But it would be better to use
iova_shift() for the size to avoid future bugs if we change granularity.

Signed-off-by: Xie Yongji <[email protected]>
Reviewed-by: Stefano Garzarella <[email protected]>


Acked-by: Jason Wang <[email protected]>


---
  drivers/vdpa/vdpa_sim/vdpa_sim.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
index 14e024de5cbf..1ccf615221fe 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
@@ -137,7 +137,8 @@ static dma_addr_t vdpasim_map_range(struct vdpasim 
*vdpasim, phys_addr_t paddr,
        int ret;
/* We set the limit_pfn to the maximum (ULONG_MAX - 1) */
-       iova = alloc_iova(&vdpasim->iova, size, ULONG_MAX - 1, true);
+       iova = alloc_iova(&vdpasim->iova, size >> iova_shift(&vdpasim->iova),
+                         ULONG_MAX - 1, true);
        if (!iova)
                return DMA_MAPPING_ERROR;

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

Reply via email to