]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
vdpa/mlx5: Fix suboptimal range on iotlb iteration
authorSi-Wei Liu <si-wei.liu@oracle.com>
Mon, 21 Oct 2024 13:40:40 +0000 (16:40 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 12 Nov 2024 23:05:05 +0000 (18:05 -0500)
The starting iova address to iterate iotlb map entry within a range
was set to an irrelevant value when passing to the itree_next()
iterator, although luckily it doesn't affect the outcome of finding
out the granule of the smallest iotlb map size. Fix the code to make
it consistent with the following for-loop.

Fixes: 94abbccdf291 ("vdpa/mlx5: Add shared memory registration code")
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Message-Id: <20241021134040.975221-3-dtatulea@nvidia.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
drivers/vdpa/mlx5/core/mr.c

index 7d0c83b5b07158f0d74a70ffe4b843f019b8a18e..8455f08f5d40604c47cd181057278b8740c856af 100644 (file)
@@ -368,7 +368,6 @@ static int map_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr
        unsigned long lgcd = 0;
        int log_entity_size;
        unsigned long size;
-       u64 start = 0;
        int err;
        struct page *pg;
        unsigned int nsg;
@@ -379,10 +378,9 @@ static int map_direct_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_direct_mr
        struct device *dma = mvdev->vdev.dma_dev;
 
        for (map = vhost_iotlb_itree_first(iotlb, mr->start, mr->end - 1);
-            map; map = vhost_iotlb_itree_next(map, start, mr->end - 1)) {
+            map; map = vhost_iotlb_itree_next(map, mr->start, mr->end - 1)) {
                size = maplen(map, mr);
                lgcd = gcd(lgcd, size);
-               start += size;
        }
        log_entity_size = ilog2(lgcd);