Commit bb8c787be0e375f6690427fcdc5bf61d838c8241
Committed by
Greg Kroah-Hartman
1 parent
a2a3baa299
net: mvneta: Fix the case where the last poll did not process all rx
[ Upstream commit 065fd83e1be2e1ba0d446a257fd86a3cc7bddb51 ] For the case where the last mvneta_poll did not process all RX packets, we need to xor the pp->cause_rx_tx or port->cause_rx_tx before claculating the rx_queue. Fixes: 2dcf75e2793c ("net: mvneta: Associate RX queues with each CPU") Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing 1 changed file with 1 additions and 2 deletions Side-by-side Diff
drivers/net/ethernet/marvell/mvneta.c
... | ... | @@ -2804,11 +2804,10 @@ |
2804 | 2804 | /* For the case where the last mvneta_poll did not process all |
2805 | 2805 | * RX packets |
2806 | 2806 | */ |
2807 | - rx_queue = fls(((cause_rx_tx >> 8) & 0xff)); | |
2808 | - | |
2809 | 2807 | cause_rx_tx |= pp->neta_armada3700 ? pp->cause_rx_tx : |
2810 | 2808 | port->cause_rx_tx; |
2811 | 2809 | |
2810 | + rx_queue = fls(((cause_rx_tx >> 8) & 0xff)); | |
2812 | 2811 | if (rx_queue) { |
2813 | 2812 | rx_queue = rx_queue - 1; |
2814 | 2813 | if (pp->bm_priv) |