Patch "vfio/type1: fix dirty bitmap calculation in vfio_dma_rw" has been added to the 5.8-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    vfio/type1: fix dirty bitmap calculation in vfio_dma_rw

to the 5.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     vfio-type1-fix-dirty-bitmap-calculation-in-vfio_dma_.patch
and it can be found in the queue-5.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b6b13db93239e859133f89a8a8cc5df8dcc6a417
Author: Yan Zhao <yan.y.zhao@xxxxxxxxx>
Date:   Wed Sep 16 10:30:05 2020 +0800

    vfio/type1: fix dirty bitmap calculation in vfio_dma_rw
    
    [ Upstream commit 2c5af98592f65517170c7bcc714566590d3f7397 ]
    
    The count of dirtied pages is not only determined by count of copied
    pages, but also by the start offset.
    
    e.g. if offset = PAGE_SIZE - 1, and *copied=2, the dirty pages count
    is 2, instead of 1 or 0.
    
    Fixes: d6a4c185660c ("vfio iommu: Implementation of ioctl for dirty pages tracking")
    Signed-off-by: Yan Zhao <yan.y.zhao@xxxxxxxxx>
    Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index f48f0db908a46..eb7bb14e4f62a 100644
--- a/drivers/vfio/vfio_iommu_type1.c
+++ b/drivers/vfio/vfio_iommu_type1.c
@@ -2899,7 +2899,8 @@ static int vfio_iommu_type1_dma_rw_chunk(struct vfio_iommu *iommu,
 			 * size
 			 */
 			bitmap_set(dma->bitmap, offset >> pgshift,
-				   *copied >> pgshift);
+				   ((offset + *copied - 1) >> pgshift) -
+				   (offset >> pgshift) + 1);
 		}
 	} else
 		*copied = copy_from_user(data, (void __user *)vaddr,



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux