diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx5/main.c')
-rw-r--r-- | drivers/infiniband/hw/mlx5/main.c | 13 |
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 | ||
6565 | static int mlx5_ib_stage_odp_init(struct mlx5_ib_dev *dev) | 6566 | static 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 | ||