On Fri, 16 Apr 2021 13:44:56 -0700 Tony Nguyen wrote:
> +     bool is_failed;
> +     int i;
> +
> +     do {
> +             is_failed = false;
> +             for (i = hw->mac.mta_reg_count - 1; i >= 0; i--) {
> +                     if (array_rd32(E1000_MTA, i) != hw->mac.mta_shadow[i]) {
> +                             is_failed = true;
> +                             array_wr32(E1000_MTA, i, hw->mac.mta_shadow[i]);
> +                             wrfl();
> +                             break;
> +                     }
> +             }
> +     } while (is_failed);

Looks like a potential infinite loop on persistent failure.
Also you don't need "is_failed", you can use while (i >= 0), or
assign i = hw->mac.mta_reg_count, or consider using a goto. 

Reply via email to