On Tue Jul 23 2024, Brett Creeley wrote: >> @@ -5811,11 +5815,29 @@ static void igc_watchdog_task(struct work_struct >> *work) >> if (adapter->flags & IGC_FLAG_HAS_MSIX) { >> u32 eics = 0; >> >> - for (i = 0; i < adapter->num_q_vectors; i++) >> - eics |= adapter->q_vector[i]->eims_value; >> - wr32(IGC_EICS, eics); >> + for (i = 0; i < adapter->num_q_vectors; i++) { >> + struct igc_q_vector *q_vector = adapter->q_vector[i]; >> + struct igc_ring *rx_ring; >> + >> + if (!q_vector->rx.ring) >> + continue; >> + >> + rx_ring = >> adapter->rx_ring[q_vector->rx.ring->queue_index]; >> + >> + if (test_bit(IGC_RING_FLAG_RX_ALLOC_FAILED, >> &rx_ring->flags)) { >> + eics |= q_vector->eims_value; >> + clear_bit(IGC_RING_FLAG_RX_ALLOC_FAILED, >> &rx_ring->flags); >> + } > > Tiny nit, but is there a reason to not use test_and_clear_bit() here?
I believe that question was answered by Sebastian on v1: https://lore.kernel.org/all/20240613062426.om5bq...@linutronix.de/ Other than that no particular reason. Thanks, Kurt
signature.asc
Description: PGP signature