]> git.itanic.dy.fi Git - linux-stable/commitdiff
net/mlx5: Avoid false positive lockdep warning by adding lock_class_key
authorShay Drory <shayd@nvidia.com>
Thu, 12 Oct 2023 19:27:38 +0000 (12:27 -0700)
committerSaeed Mahameed <saeedm@nvidia.com>
Sat, 14 Oct 2023 17:16:30 +0000 (10:16 -0700)
Downstream patch will add devcom component which will be locked in
many places. This can lead to a false positive "possible circular
locking dependency" warning by lockdep, on flows which lock more than
one mlx5 devcom component, such as probing ETH aux device.
Hence, add a lock_class_key per mlx5 device.

Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c

index 00e67910e3ee9d89c17c22ac535ef626e2cdd81f..89ac3209277e16b6a562a008e93f36e6530cf968 100644 (file)
@@ -31,6 +31,7 @@ struct mlx5_devcom_comp {
        struct kref ref;
        bool ready;
        struct rw_semaphore sem;
+       struct lock_class_key lock_key;
 };
 
 struct mlx5_devcom_comp_dev {
@@ -119,6 +120,8 @@ mlx5_devcom_comp_alloc(u64 id, u64 key, mlx5_devcom_event_handler_t handler)
        comp->key = key;
        comp->handler = handler;
        init_rwsem(&comp->sem);
+       lockdep_register_key(&comp->lock_key);
+       lockdep_set_class(&comp->sem, &comp->lock_key);
        kref_init(&comp->ref);
        INIT_LIST_HEAD(&comp->comp_dev_list_head);
 
@@ -133,6 +136,7 @@ mlx5_devcom_comp_release(struct kref *ref)
        mutex_lock(&comp_list_lock);
        list_del(&comp->comp_list);
        mutex_unlock(&comp_list_lock);
+       lockdep_unregister_key(&comp->lock_key);
        kfree(comp);
 }