lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.12 419/700] RDMA/mlx5: Dont add slave port to unaffiliated list
    Date
    From: Leon Romanovsky <leonro@nvidia.com>

    [ Upstream commit 7ce6095e3bff8e20ce018b050960b527e298f7df ]

    The mlx5_ib_bind_slave_port() doesn't remove multiport device from the
    unaffiliated list, but mlx5_ib_unbind_slave_port() did it. This unbalanced
    flow caused to the situation where mlx5_ib_unaffiliated_port_list was
    changed during iteration.

    Fixes: 32f69e4be269 ("{net, IB}/mlx5: Manage port association for multiport RoCE")
    Link: https://lore.kernel.org/r/2726e6603b1e6ecfe76aa5a12a063af72173bcf7.1622477058.git.leonro@nvidia.com
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/hw/mlx5/main.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
    index 59ffbbdda317..21b230096cc1 100644
    --- a/drivers/infiniband/hw/mlx5/main.c
    +++ b/drivers/infiniband/hw/mlx5/main.c
    @@ -3393,8 +3393,6 @@ static void mlx5_ib_unbind_slave_port(struct mlx5_ib_dev *ibdev,

    port->mp.mpi = NULL;

    - list_add_tail(&mpi->list, &mlx5_ib_unaffiliated_port_list);
    -
    spin_unlock(&port->mp.mpi_lock);

    err = mlx5_nic_vport_unaffiliate_multiport(mpi->mdev);
    @@ -3542,6 +3540,8 @@ static void mlx5_ib_cleanup_multiport_master(struct mlx5_ib_dev *dev)
    } else {
    mlx5_ib_dbg(dev, "unbinding port_num: %d\n", i + 1);
    mlx5_ib_unbind_slave_port(dev, dev->port[i].mp.mpi);
    + list_add_tail(&dev->port[i].mp.mpi->list,
    + &mlx5_ib_unaffiliated_port_list);
    }
    }
    }
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:10    [W:4.060 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site