diff options
author | Netanel Belgazal <netanel@amazon.com> | 2017-12-29 00:31:30 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-02 22:35:12 +0300 |
commit | 8510e1a3d16c7e4e2b47c9675b18725407c616b7 (patch) | |
tree | bb5285244774553c8ea08da5f24a89496d787e73 /drivers/net/ethernet/amazon/ena/ena_eth_com.c | |
parent | acfbf3ca313edd550f0139fe70509cb3b0b38932 (diff) | |
download | linux-8510e1a3d16c7e4e2b47c9675b18725407c616b7.tar.xz |
net: ena: add detection and recovery mechanism for handling missed/misrouted MSI-X
A mechanism for detection of stuck Rx/Tx rings due to missed or
misrouted interrupts.
Check if there are unhandled completion descriptors before the first
MSI-X interrupt arrived.
The check is per queue and per interrupt vector.
Once such condition is detected, driver and device reset is scheduled.
Signed-off-by: Netanel Belgazal <netanel@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/amazon/ena/ena_eth_com.c')
-rw-r--r-- | drivers/net/ethernet/amazon/ena/ena_eth_com.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.c b/drivers/net/ethernet/amazon/ena/ena_eth_com.c index b11e573ad57a..ea149c134e15 100644 --- a/drivers/net/ethernet/amazon/ena/ena_eth_com.c +++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.c @@ -504,3 +504,14 @@ int ena_com_tx_comp_req_id_get(struct ena_com_io_cq *io_cq, u16 *req_id) return 0; } + +bool ena_com_cq_empty(struct ena_com_io_cq *io_cq) +{ + struct ena_eth_io_rx_cdesc_base *cdesc; + + cdesc = ena_com_get_next_rx_cdesc(io_cq); + if (cdesc) + return false; + else + return true; +} |