Before these patches, if an application was configured to run with HW Steering and E-Switch enabled, on EAL cleanup the assertion in mlx5_dev_hw_global_release() was triggered - PD release was unsuccessful.
Root cause of this issue was linked to an inability to destroy RTC objects used internally in mlx5, in HW Steering implementation. PMD was unable to destroy RTC objects, because of dangling references to those objects. More specifically, if all matchers connected to a single flow table were created, this flow table was still referencing RTC objects when theye were being destroyed. This patch series fixes that behavior. Matcher uninitilization is updated to remove the references to RTC objects from flow table object if the last matcher related to the flow table was destroyed. Erez Shitrit (2): net/mlx5/hws: fix order of destroying default tables net/mlx5/hws: fix disconnecting matcher drivers/net/mlx5/hws/mlx5dr_matcher.c | 35 +++++++++++++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_table.c | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) -- 2.25.1