RDMA/mlx5: Use correct size for device resources
authorMark Bloch <markb@mellanox.com>
Thu, 28 Mar 2019 13:27:36 +0000 (15:27 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 10 Apr 2019 18:05:39 +0000 (15:05 -0300)
On allocation we use the array size and on destruction num_ports, use the
array size of destruction as well, in this context the array corresponds
to the native/actual ports on the NIC so no need to adjust this logic for
representors.

Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/main.c

index 0d86b52..007ba3f 100644 (file)
@@ -4866,8 +4866,6 @@ error0:
 
 static void destroy_dev_resources(struct mlx5_ib_resources *devr)
 {
-       struct mlx5_ib_dev *dev =
-               container_of(devr, struct mlx5_ib_dev, devr);
        int port;
 
        mlx5_ib_destroy_srq(devr->s1, NULL);
@@ -4881,7 +4879,7 @@ static void destroy_dev_resources(struct mlx5_ib_resources *devr)
        kfree(devr->p0);
 
        /* Make sure no change P_Key work items are still executing */
-       for (port = 0; port < dev->num_ports; ++port)
+       for (port = 0; port < ARRAY_SIZE(devr->ports); ++port)
                cancel_work_sync(&devr->ports[port].pkey_change_work);
 }