On Thu Sep 05 2024, Dima Ruinskiy wrote: > On 31/08/2024 0:04, Tony Nguyen wrote: >> - wr32(IGC_ICS, IGC_ICS_RXDMT0); >> + struct igc_ring *rx_ring = adapter->rx_ring[0]; >> + >> + if (test_bit(IGC_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags)) { >> + clear_bit(IGC_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); >> + wr32(IGC_ICS, IGC_ICS_RXDMT0); >> + } > I have some concerns specifically about this code (Legacy/MSI interrupt > case). The code only checks the IGC_RING_FLAG_RX_ALLOC_FAILED flag of > ring 0. What if the failure was on another ring? It seems proper to > iterate over all Rx rings in the adapter (I believe igc can have up to 4). In case of Legacy/MSI only one vector, one rx queue and one tx queue is utilized. The MSI-X code has to check for all rings, which it does. Thanks, Kurt
Attachment:
signature.asc
Description: PGP signature