]> 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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:53:55 +0000 (13:53 +0100)
[ Upstream commit 35025963326e44d8bced3eecd42d2f040f4f0024 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/vdpa/mlx5/core/mr.c

index f1da0b7e08e9e0ff17247a3b3c772a1fb326a140..906b39f2c4be4e41fede413b4e4481af881e447a 100644 (file)
@@ -227,7 +227,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;
@@ -238,10 +237,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);