]> git.baikalelectronics.ru Git - kernel.git/commit
bnxt_en: Fix netpoll handling.
authorMichael Chan <michael.chan@broadcom.com>
Fri, 23 Jun 2017 18:01:01 +0000 (14:01 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Jun 2017 18:48:27 +0000 (14:48 -0400)
commitded5af4d9379e54e6f7af7bd2f6a1110cc6ba8bb
treee41c847ec1c2f797403d296ae53adbf44dd9d0ca
parentaaf8badbfc3c4b309972b465bb285900591db72d
bnxt_en: Fix netpoll handling.

To handle netpoll properly, the driver must only handle TX packets
during NAPI.  Handling RX events cause warnings and errors in
netpoll mode. The ndo_poll_controller() method should call
napi_schedule() directly so that a NAPI weight of zero will be used
during netpoll mode.

The bnxt_en driver supports 2 ring modes: combined, and separate rx/tx.
In separate rx/tx mode, the ndo_poll_controller() method will only
process the tx rings.  In combined mode, the rx and tx completion
entries are mixed in the completion ring and we need to drop the rx
entries and recycle the rx buffers.

Add a function bnxt_force_rx_discard() to handle this in netpoll mode
when we see rx entries in combined ring mode.

Reported-by: Calvin Owens <calvinowens@fb.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c