forked from Minki/linux
vdpa_sim: Use iova_shift() for the size passed to alloc_iova()
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@bytedance.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Link: https://lore.kernel.org/r/20210809100923.38-1-xieyongji@bytedance.com Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
23b228cb89
commit
0d8c9e7d4b
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user