4.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Parav Pandit <[email protected]>

commit 921c0f5ba58e4064deb18b4985a202508fc5527f upstream.

It is incorrect to depend on set_id value to know if counters were
allocated or not. set_id_valid field is set to true when counters
were allocated. Therefore, use set_id_valid while deciding to
free counters.

Cc: <[email protected]> # 4.15
Fixes: aac4492ef23a ("IB/mlx5: Update counter implementation for dual port 
RoCE")
Signed-off-by: Parav Pandit <[email protected]>
Reviewed-by: Daniel Jurgens <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/infiniband/hw/mlx5/main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -4694,7 +4694,7 @@ static void mlx5_ib_dealloc_counters(str
        int i;
 
        for (i = 0; i < dev->num_ports; i++) {
-               if (dev->port[i].cnts.set_id)
+               if (dev->port[i].cnts.set_id_valid)
                        mlx5_core_dealloc_q_counter(dev->mdev,
                                                    dev->port[i].cnts.set_id);
                kfree(dev->port[i].cnts.names);


Reply via email to