On Fri, 2021-04-16 at 14:12 -0700, Jakub Kicinski wrote: > 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.
We will make a follow on patch to address these issues. Thanks, Tony