From: Michael Chan <michael.c...@broadcom.com> Date: Wed, 26 Sep 2018 00:41:04 -0400
> The current netpoll implementation in the bnxt_en driver has problems > that may miss TX completion events. bnxt_poll_work() in effect is > only handling at most 1 TX packet before exiting. In addition, > there may be in flight TX completions that ->poll() may miss even > after we fix bnxt_poll_work() to handle all visible TX completions. > netpoll may not call ->poll() again and HW may not generate IRQ > because the driver does not ARM the IRQ when the budget (0 for netpoll) > is reached. > > We fix it by handling all TX completions and to always ARM the IRQ > when we exit ->poll() with 0 budget. > > Also, the logic to ACK the completion ring in case it is almost filled > with TX completions need to be adjusted to take care of the 0 budget > case, as discussed with Eric Dumazet <eduma...@google.com> > > Reported-by: Song Liu <songliubrav...@fb.com> > Signed-off-by: Michael Chan <michael.c...@broadcom.com> Applied and queued up for -stable, thanks Michael.