aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx5/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/mlx5/main.c')
-rw-r--r--drivers/infiniband/hw/mlx5/main.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index c2a5780cb394..0569bcab02d4 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -1023,7 +1023,7 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
1023 props->timestamp_mask = 0x7FFFFFFFFFFFFFFFULL; 1023 props->timestamp_mask = 0x7FFFFFFFFFFFFFFFULL;
1024 1024
1025 if (IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING)) { 1025 if (IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING)) {
1026 if (MLX5_CAP_GEN(mdev, pg)) 1026 if (dev->odp_caps.general_caps & IB_ODP_SUPPORT)
1027 props->device_cap_flags |= IB_DEVICE_ON_DEMAND_PAGING; 1027 props->device_cap_flags |= IB_DEVICE_ON_DEMAND_PAGING;
1028 props->odp_caps = dev->odp_caps; 1028 props->odp_caps = dev->odp_caps;
1029 } 1029 }
@@ -5802,13 +5802,12 @@ static void mlx5_ib_unbind_slave_port(struct mlx5_ib_dev *ibdev,
5802 return; 5802 return;
5803 } 5803 }
5804 5804
5805 if (mpi->mdev_events.notifier_call)
5806 mlx5_notifier_unregister(mpi->mdev, &mpi->mdev_events);
5807 mpi->mdev_events.notifier_call = NULL;
5808
5809 mpi->ibdev = NULL; 5805 mpi->ibdev = NULL;
5810 5806
5811 spin_unlock(&port->mp.mpi_lock); 5807 spin_unlock(&port->mp.mpi_lock);
5808 if (mpi->mdev_events.notifier_call)
5809 mlx5_notifier_unregister(mpi->mdev, &mpi->mdev_events);
5810 mpi->mdev_events.notifier_call = NULL;
5812 mlx5_remove_netdev_notifier(ibdev, port_num); 5811 mlx5_remove_netdev_notifier(ibdev, port_num);
5813 spin_lock(&port->mp.mpi_lock); 5812 spin_lock(&port->mp.mpi_lock);
5814 5813
@@ -6140,6 +6139,8 @@ static int mlx5_ib_stage_init_init(struct mlx5_ib_dev *dev)
6140 dev->port[i].roce.last_port_state = IB_PORT_DOWN; 6139 dev->port[i].roce.last_port_state = IB_PORT_DOWN;
6141 } 6140 }
6142 6141
6142 mlx5_ib_internal_fill_odp_caps(dev);
6143
6143 err = mlx5_ib_init_multiport_master(dev); 6144 err = mlx5_ib_init_multiport_master(dev);
6144 if (err) 6145 if (err)
6145 return err; 6146 return err;
@@ -6564,8 +6565,6 @@ static void mlx5_ib_stage_dev_res_cleanup(struct mlx5_ib_dev *dev)
6564 6565
6565static int mlx5_ib_stage_odp_init(struct mlx5_ib_dev *dev) 6566static int mlx5_ib_stage_odp_init(struct mlx5_ib_dev *dev)
6566{ 6567{
6567 mlx5_ib_internal_fill_odp_caps(dev);
6568
6569 return mlx5_ib_odp_init_one(dev); 6568 return mlx5_ib_odp_init_one(dev);
6570} 6569}
6571 6570