]> www.infradead.org Git - users/dwmw2/linux.git/commit
bnxt_en: Improve RX doorbell sequence.
authorMichael Chan <michael.chan@broadcom.com>
Sat, 17 Aug 2019 21:04:48 +0000 (17:04 -0400)
committerSasha Levin <sashal@kernel.org>
Sun, 25 Aug 2019 14:10:37 +0000 (10:10 -0400)
commit889e8658d99a2fbab7a0fd7925720e341e1e15d9
tree581b3fa1e6a078b3554ab1964641622afe60cd30
parent6fdedaf3ad0c6f76ddc3436705b48714930f8bf0
bnxt_en: Improve RX doorbell sequence.

[ Upstream commit e8f267b063208372f7a329c6d5288d58944d873c ]

When both RX buffers and RX aggregation buffers have to be
replenished at the end of NAPI, post the RX aggregation buffers first
before RX buffers.  Otherwise, we may run into a situation where
there are only RX buffers without RX aggregation buffers for a split
second.  This will cause the hardware to abort the RX packet and
report buffer errors, which will cause unnecessary cleanup by the
driver.

Ringing the Aggregation ring doorbell first before the RX ring doorbell
will prevent some of these buffer errors.  Use the same sequence during
ring initialization as well.

Fixes: 697197e5a173 ("bnxt_en: Re-structure doorbells.")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c