OSDN Git Service

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)
commit7a545077cb6701957e84c7f158630bb5c984e648
tree69e9afb87043f36a51948f79b171969b8db30e02
parenta6ee6f5f1082c416f9bfffbae1a87feff8a6ab3d
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: d894892dda25 ("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