Jason Wang
2021-Aug-10 03:09 UTC
[PATCH v2] vdpa_sim: Use iova_shift() for the size passed to alloc_iova()
? 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 <xieyongji at bytedance.com> > Reviewed-by: Stefano Garzarella <sgarzare at redhat.com>Acked-by: Jason Wang <jasowang at redhat.com>> --- > 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; >