]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "net/mlx5: Arm only EQs with EQEs"
authorShay Drory <shayd@nvidia.com>
Thu, 25 Feb 2021 10:27:53 +0000 (12:27 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 10 Jun 2021 00:20:05 +0000 (17:20 -0700)
commit4313ac3719b22668ccafa36473340bbd41b1f3d9
tree69e9afb87043f36a51948f79b171969b8db30e02
parentc646b5b338cabe7ebb40d3c6192e7d77a08aad81
Revert "net/mlx5: Arm only EQs with EQEs"

In the scenario described below, an EQ can remain in FIRED state which
can result in missing an interrupt generation.

The scenario:

device                       mlx5_core driver
------                       ----------------
EQ1.eqe generated
EQ1.MSI-X sent
EQ1.state = FIRED
EQ2.eqe generated
                             mlx5_irq()
                               polls - eq1_eqes()
                               arm eq1
                               polls - eq2_eqes()
                               arm eq2
EQ2.MSI-X sent
EQ2.state = FIRED
                              mlx5_irq()
                              polls - eq2_eqes() -- no eqes found
                              driver skips EQ arming;

->EQ2 remains fired, misses generating interrupt.

Hence, always arm the EQ by reverting the cited commit in fixes tag.

Fixes: 5bbaf277a678 ("net/mlx5: Arm only EQs with EQEs")
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Parav Pandit <parav@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/eq.c