Commit 4f085ca2 authored by Alex Williamson's avatar Alex Williamson

Merge branch 'v5.8/vfio/kirti-migration-fixes' into v5.8/vfio/next

parents ea20868c c8e9df47
...@@ -227,11 +227,12 @@ static void vfio_dma_bitmap_free(struct vfio_dma *dma) ...@@ -227,11 +227,12 @@ static void vfio_dma_bitmap_free(struct vfio_dma *dma)
static void vfio_dma_populate_bitmap(struct vfio_dma *dma, size_t pgsize) static void vfio_dma_populate_bitmap(struct vfio_dma *dma, size_t pgsize)
{ {
struct rb_node *p; struct rb_node *p;
unsigned long pgshift = __ffs(pgsize);
for (p = rb_first(&dma->pfn_list); p; p = rb_next(p)) { for (p = rb_first(&dma->pfn_list); p; p = rb_next(p)) {
struct vfio_pfn *vpfn = rb_entry(p, struct vfio_pfn, node); struct vfio_pfn *vpfn = rb_entry(p, struct vfio_pfn, node);
bitmap_set(dma->bitmap, (vpfn->iova - dma->iova) / pgsize, 1); bitmap_set(dma->bitmap, (vpfn->iova - dma->iova) >> pgshift, 1);
} }
} }
...@@ -997,14 +998,14 @@ static int update_user_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, ...@@ -997,14 +998,14 @@ static int update_user_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu,
nbits + shift); nbits + shift);
if (copy_from_user(&leftover, if (copy_from_user(&leftover,
(const void *)(bitmap + copy_offset), (void __user *)(bitmap + copy_offset),
sizeof(leftover))) sizeof(leftover)))
return -EFAULT; return -EFAULT;
bitmap_or(dma->bitmap, dma->bitmap, &leftover, shift); bitmap_or(dma->bitmap, dma->bitmap, &leftover, shift);
} }
if (copy_to_user((void *)(bitmap + copy_offset), dma->bitmap, if (copy_to_user((void __user *)(bitmap + copy_offset), dma->bitmap,
DIRTY_BITMAP_BYTES(nbits + shift))) DIRTY_BITMAP_BYTES(nbits + shift)))
return -EFAULT; return -EFAULT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment