Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 022d038a authored by Alex Vesker's avatar Alex Vesker Committed by Doug Ledford
Browse files

IB/ipoib: Limit call to free rdma_netdev for capable devices



Limit calls to free_rdma_netdev() for capable devices only.

Fixes: cd565b4b ('IB/IPoIB: Support acceleration options callbacks')
Signed-off-by: default avatarAlex Vesker <valex@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent ab156afd
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -3692,8 +3692,10 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
	dev->ib_dev.check_mr_status	= mlx5_ib_check_mr_status;
	dev->ib_dev.get_port_immutable  = mlx5_port_immutable;
	dev->ib_dev.get_dev_fw_str      = get_dev_fw_str;
	if (MLX5_CAP_GEN(mdev, ipoib_enhanced_offloads)) {
		dev->ib_dev.alloc_rdma_netdev	= mlx5_ib_alloc_rdma_netdev;
		dev->ib_dev.free_rdma_netdev	= mlx5_ib_free_rdma_netdev;
	}
	if (mlx5_core_is_pf(mdev)) {
		dev->ib_dev.get_vf_config	= mlx5_ib_get_vf_config;
		dev->ib_dev.set_vf_link_state	= mlx5_ib_set_vf_link_state;
+4 −1
Original line number Diff line number Diff line
@@ -2301,6 +2301,9 @@ static void ipoib_remove_one(struct ib_device *device, void *client_data)
		flush_workqueue(priv->wq);

		unregister_netdev(priv->dev);
		if (device->free_rdma_netdev)
			device->free_rdma_netdev(priv->dev);
		else
			free_netdev(priv->dev);

		list_for_each_entry_safe(cpriv, tcpriv, &priv->child_intfs, list)