net/mlx5e: CT, Avoid false lock dependency warning
authorRoi Dayan <roid@nvidia.com>
Thu, 19 Nov 2020 12:20:44 +0000 (14:20 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 11 Mar 2021 22:35:12 +0000 (14:35 -0800)
commit76e68d950a170fb5cf70165bb442ba9636a19232
tree3b81ea8009a6c44c12449772bfe450fc0aa93ece
parentfe06992b04a90767cee921b22fb2cb09c93447a8
net/mlx5e: CT, Avoid false lock dependency warning

To avoid false lock dependency warning set the ct_entries_ht lock
class different than the lock class of the ht being used when deleting
last flow from a group and then deleting a group, we get into del_sw_flow_group()
which call rhashtable_destroy on fg->ftes_hash which will take ht->mutex but
it's different than the ht->mutex here.

======================================================
WARNING: possible circular locking dependency detected
5.10.0-rc2+ #8 Tainted: G           O
------------------------------------------------------
revalidator23/24009 is trying to acquire lock:
ffff888128d83828 (&node->lock){++++}-{3:3}, at: mlx5_del_flow_rules+0x83/0x7a0 [mlx5_core]

but task is already holding lock:
ffff8881081ef518 (&ht->mutex){+.+.}-{3:3}, at: rhashtable_free_and_destroy+0x37/0x720

which lock already depends on the new lock.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Paul Blakey <paulb@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c