Loading drivers/vfio/vfio_iommu_type1.c +4 −3 Original line number Diff line number Diff line Loading @@ -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) { struct rb_node *p; unsigned long pgshift = __ffs(pgsize); for (p = rb_first(&dma->pfn_list); p; p = rb_next(p)) { 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); } } Loading Loading @@ -997,14 +998,14 @@ static int update_user_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, nbits + shift); if (copy_from_user(&leftover, (const void *)(bitmap + copy_offset), (void __user *)(bitmap + copy_offset), sizeof(leftover))) return -EFAULT; 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))) return -EFAULT; Loading Loading
drivers/vfio/vfio_iommu_type1.c +4 −3 Original line number Diff line number Diff line Loading @@ -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) { struct rb_node *p; unsigned long pgshift = __ffs(pgsize); for (p = rb_first(&dma->pfn_list); p; p = rb_next(p)) { 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); } } Loading Loading @@ -997,14 +998,14 @@ static int update_user_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, nbits + shift); if (copy_from_user(&leftover, (const void *)(bitmap + copy_offset), (void __user *)(bitmap + copy_offset), sizeof(leftover))) return -EFAULT; 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))) return -EFAULT; Loading