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

Attachment: signature.asc
Description: PGP signature

Reply via email to