File tree Expand file tree Collapse file tree 2 files changed +13
-20
lines changed
drivers/net/ethernet/mellanox/mlx5/core Expand file tree Collapse file tree 2 files changed +13
-20
lines changed Original file line number Diff line number Diff line change @@ -1680,6 +1680,8 @@ int mlx5_init_one_light(struct mlx5_core_dev *dev)
1680
1680
struct devlink * devlink = priv_to_devlink (dev );
1681
1681
int err ;
1682
1682
1683
+ devl_lock (devlink );
1684
+ devl_register (devlink );
1683
1685
dev -> state = MLX5_DEVICE_STATE_UP ;
1684
1686
err = mlx5_function_enable (dev , true, mlx5_tout_ms (dev , FW_PRE_INIT_TIMEOUT ));
1685
1687
if (err ) {
@@ -1693,27 +1695,21 @@ int mlx5_init_one_light(struct mlx5_core_dev *dev)
1693
1695
goto query_hca_caps_err ;
1694
1696
}
1695
1697
1696
- devl_lock (devlink );
1697
- devl_register (devlink );
1698
-
1699
1698
err = mlx5_devlink_params_register (priv_to_devlink (dev ));
1700
1699
if (err ) {
1701
1700
mlx5_core_warn (dev , "mlx5_devlink_param_reg err = %d\n" , err );
1702
- goto params_reg_err ;
1701
+ goto query_hca_caps_err ;
1703
1702
}
1704
1703
1705
1704
devl_unlock (devlink );
1706
1705
return 0 ;
1707
1706
1708
- params_reg_err :
1709
- devl_unregister (devlink );
1710
- devl_unlock (devlink );
1711
1707
query_hca_caps_err :
1712
- devl_unregister (devlink );
1713
- devl_unlock (devlink );
1714
1708
mlx5_function_disable (dev , true);
1715
1709
out :
1716
1710
dev -> state = MLX5_DEVICE_STATE_INTERNAL_ERROR ;
1711
+ devl_unregister (devlink );
1712
+ devl_unlock (devlink );
1717
1713
return err ;
1718
1714
}
1719
1715
Original file line number Diff line number Diff line change @@ -60,6 +60,13 @@ static int mlx5_sf_dev_probe(struct auxiliary_device *adev, const struct auxilia
60
60
goto remap_err ;
61
61
}
62
62
63
+ /* Peer devlink logic expects to work on unregistered devlink instance. */
64
+ err = mlx5_core_peer_devlink_set (sf_dev , devlink );
65
+ if (err ) {
66
+ mlx5_core_warn (mdev , "mlx5_core_peer_devlink_set err=%d\n" , err );
67
+ goto peer_devlink_set_err ;
68
+ }
69
+
63
70
if (MLX5_ESWITCH_MANAGER (sf_dev -> parent_mdev ))
64
71
err = mlx5_init_one_light (mdev );
65
72
else
@@ -69,20 +76,10 @@ static int mlx5_sf_dev_probe(struct auxiliary_device *adev, const struct auxilia
69
76
goto init_one_err ;
70
77
}
71
78
72
- err = mlx5_core_peer_devlink_set (sf_dev , devlink );
73
- if (err ) {
74
- mlx5_core_warn (mdev , "mlx5_core_peer_devlink_set err=%d\n" , err );
75
- goto peer_devlink_set_err ;
76
- }
77
-
78
79
return 0 ;
79
80
80
- peer_devlink_set_err :
81
- if (mlx5_dev_is_lightweight (sf_dev -> mdev ))
82
- mlx5_uninit_one_light (sf_dev -> mdev );
83
- else
84
- mlx5_uninit_one (sf_dev -> mdev );
85
81
init_one_err :
82
+ peer_devlink_set_err :
86
83
iounmap (mdev -> iseg );
87
84
remap_err :
88
85
mlx5_mdev_uninit (mdev );
You can’t perform that action at this time.
0 commit comments