OSDN Git Service

mlx5: fix mlx5_get_vector_affinity to start from completion vector 0
authorSagi Grimberg <sagi@grimberg.me>
Mon, 5 Feb 2018 14:24:52 +0000 (16:24 +0200)
committerDoug Ledford <dledford@redhat.com>
Mon, 5 Feb 2018 15:49:42 +0000 (10:49 -0500)
The consumers of this routine expects the affinity map of of vector
index relative to the first completion vector. The upper layers are
not aware of internal/private completion vectors that mlx5 allocates
for its own usage.

Hence, return the affinity map of vector index relative to the first
completion vector.

Fixes: 05e0cc84e00c ("net/mlx5: Fix get vector affinity helper function")
Reported-by: Logan Gunthorpe <logang@deltatee.com>
Tested-by: Max Gurtovoy <maxg@mellanox.com>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Cc: <stable@vger.kernel.org> # v4.15
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Doug Ledford <dledford@redhat.com>
include/linux/mlx5/driver.h

index fb7e8b2..6ed79a8 100644 (file)
@@ -1277,7 +1277,7 @@ mlx5_get_vector_affinity(struct mlx5_core_dev *dev, int vector)
        int eqn;
        int err;
 
-       err = mlx5_vector2eqn(dev, vector, &eqn, &irq);
+       err = mlx5_vector2eqn(dev, MLX5_EQ_VEC_COMP_BASE + vector, &eqn, &irq);
        if (err)
                return NULL;