Moshe Shemesh
7b19119f4c
net/mlx5: Use devl_ API in mlx5e_devlink_port_register
...
As part of the flows invoked by mlx5_devlink_eswitch_mode_set() get to
mlx5_rescan_drivers_locked() which can call mlx5e_probe()/mlx5e_remove
and register/unregister mlx5e driver ports accordingly. This can lead to
deadlock once mlx5_devlink_eswitch_mode_set() will use devlink lock.
Use devl_port_register/unregister() instead of
devlink_port_register/unregister() and add devlink instance locks in the
driver paths to this function to have it locked while calling devl_ API
function.
If remove or probe were called by module init or module cleanup flows,
need to lock devlink just before calling devl_port_register(), otherwise
it is called by attach/detach or register/unregister flow and we can
have the flow locked. Added flag to distinguish between these cases.
This will be used by the downstream patch to invoke
mlx5_devlink_eswitch_mode_set() with devlink locked.
Signed-off-by: Moshe Shemesh <moshe@nvidia.com >
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com >
Signed-off-by: Paolo Abeni <pabeni@redhat.com >
2022-07-12 10:26:23 +02:00
..
2022-06-03 11:48:47 -07:00
2022-07-03 11:34:24 +02:00
2022-06-03 11:48:47 -07:00
2022-06-03 11:36:34 -07:00
2022-06-03 11:48:47 -07:00
2022-06-23 22:17:43 +02:00
2022-06-03 11:36:34 -07:00
2022-05-26 14:51:38 -07:00
2022-06-02 15:23:54 -07:00
2022-07-12 10:26:23 +02:00
2022-06-17 10:55:35 +01:00
2022-06-05 10:47:06 -07:00
2022-06-03 16:13:25 -07:00
2022-06-02 15:23:54 -07:00
2022-06-03 11:48:47 -07:00
2022-06-08 12:39:37 -04:00
2022-06-03 11:17:49 -07:00
2022-05-30 11:30:16 -07:00
2022-06-16 10:55:57 +02:00
2022-06-08 14:04:14 -04:00
2022-06-03 06:52:58 -07:00
2022-06-03 10:14:48 -07:00
2022-05-28 06:15:27 -06:00
2022-06-19 18:40:11 -06:00
2022-06-29 13:21:52 -07:00
2022-06-20 17:40:51 -07:00
2022-06-29 13:21:52 -07:00
2022-06-29 13:21:51 -07:00
2022-06-29 13:21:52 -07:00
2022-07-04 10:33:06 +01:00
2022-06-29 13:21:51 -07:00
2022-06-07 10:20:42 -07:00
2022-05-31 14:10:54 -07:00
2022-07-03 11:32:22 -07:00
2022-06-23 18:41:40 +02:00
2022-05-27 12:34:44 +02:00
2022-06-03 20:09:29 +08:00
2022-06-07 10:27:38 +02:00
2022-06-01 15:55:25 -07:00
2022-06-30 05:11:17 +09:00
2022-06-03 11:48:47 -07:00
2022-06-28 10:37:25 -03:00
2022-05-25 16:18:27 -07:00
2022-06-03 11:48:47 -07:00
2022-06-28 11:18:13 +02:00
2022-06-21 18:52:04 +02:00
2022-06-03 06:52:57 -07:00
2022-06-04 19:00:05 -07:00
2022-05-29 10:31:36 -07:00
2022-05-26 12:32:41 -07:00
2022-06-01 11:50:42 +02:00
2022-05-28 11:27:17 -07:00
2022-06-03 11:48:47 -07:00
2022-06-10 10:40:28 +03:00
2022-06-09 21:53:09 -07:00
2022-06-09 21:53:12 -07:00
2022-06-09 21:53:09 -07:00
2022-05-31 11:36:57 +02:00
2022-05-27 12:34:44 +02:00
2022-05-31 14:10:54 -07:00
2022-05-26 21:12:59 -04:00
2022-05-26 14:20:14 -07:00
2022-06-06 09:52:17 +09:00
2022-05-27 11:22:03 -07:00
2022-05-27 21:24:19 -07:00
2022-07-03 14:40:28 -07:00
2022-06-19 10:38:26 +01:00
2022-06-09 16:24:25 -04:00
2022-06-16 19:11:32 -07:00
2022-06-24 11:34:38 +01:00
2022-06-20 14:05:52 +02:00
2022-06-30 16:31:00 -07:00
2022-06-14 10:36:11 -07:00
2022-05-31 17:09:30 -04:00
2022-05-26 12:32:41 -07:00
2022-05-31 17:09:24 -04:00
2022-06-04 14:04:27 -07:00
2022-06-23 15:22:22 +02:00
2022-06-06 11:50:22 -07:00
2022-05-26 12:32:41 -07:00
2022-06-03 11:48:47 -07:00
2022-06-27 11:37:55 +01:00
2022-06-30 16:31:00 -07:00
2022-06-03 11:48:47 -07:00
2022-06-06 08:22:01 +02:00
2022-05-30 11:37:26 -07:00
2022-06-23 19:11:28 +02:00
2022-06-03 11:17:49 -07:00
2022-06-10 11:29:48 +02:00
2022-06-19 23:50:46 +02:00
2022-05-30 11:37:26 -07:00
2022-07-03 11:32:22 -07:00
2022-06-03 16:13:25 -07:00
2022-06-10 17:55:29 +01:00
2022-06-10 13:30:41 +02:00
2022-06-03 10:34:34 -07:00
2022-06-24 16:24:38 -07:00
2022-06-02 16:26:58 -07:00
2022-05-26 12:32:41 -07:00
2022-06-13 13:47:15 +01:00
2022-07-06 12:56:35 +01:00
2022-05-27 09:33:45 -07:00
2022-05-27 09:33:45 -07:00
2022-06-30 13:14:35 +02:00
2022-06-29 09:51:41 +02:00
2022-07-02 16:22:25 +01:00
2022-06-03 11:17:49 -07:00
2022-06-30 21:18:16 -07:00
2022-06-09 00:26:35 -04:00
2022-05-31 12:44:28 -04:00
2022-06-24 02:49:48 -04:00
2022-05-31 12:45:10 -04:00
2022-06-13 09:54:52 -07:00
2022-06-11 14:16:42 -10:00
2022-05-26 16:57:20 -07:00
2022-06-09 16:24:25 -04:00