Commit bb8c787be0e375f6690427fcdc5bf61d838c8241

Authored by Jisheng Zhang
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)