]> git.baikalelectronics.ru Git - kernel.git/commit
qed: Fix the DORQ's attentions handling
authorDenis Bolotin <dbolotin@marvell.com>
Sun, 14 Apr 2019 14:23:08 +0000 (17:23 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 14 Apr 2019 20:59:49 +0000 (13:59 -0700)
commit61384361d8306a10039ecba7dc8c7c1e46f5773c
tree663b75e7ae6af848fab55a34c1fb192b6be32f67
parent5012db930bd5b513d87f138a32bcdf8cac6f6364
qed: Fix the DORQ's attentions handling

Separate the overflow handling from the hardware interrupt status analysis.
The interrupt status is a single register and is common for all PFs. The
first PF reading the register is not necessarily the one who overflowed.
All PFs must check their overflow status on every attention.
In this change we clear the sticky indication in the attention handler to
allow doorbells to be processed again as soon as possible, but running
the doorbell recovery is scheduled for the periodic handler to reduce the
time spent in the attention handler.
Checking the need for DORQ flush was changed to "db_bar_no_edpm" because
qed_edpm_enabled()'s result could change dynamically and might have
prevented a needed flush.

Signed-off-by: Denis Bolotin <dbolotin@marvell.com>
Signed-off-by: Michal Kalderon <mkalderon@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed.h
drivers/net/ethernet/qlogic/qed/qed_int.c