Commit 9a3de255 authored by Jarek Poplawski's avatar Jarek Poplawski Committed by David S. Miller
Browse files

drivers/net: starfire: Fix napi ->poll() weight handling



starfire napi ->poll() handler can return work == weight after calling
netif_rx_complete() (if there is no more work). It is illegal and this
patch fixes it.

Reported-by: default avatarAlexander Huemer <alexander.huemer@sbg.ac.at>
Tested-by: default avatarAlexander Huemer <alexander.huemer@sbg.ac.at>
Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bb5f133d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1509,6 +1509,11 @@ static int __netdev_rx(struct net_device *dev, int *quota)
		desc->status = 0;
		np->rx_done = (np->rx_done + 1) % DONE_Q_SIZE;
	}

	if (*quota == 0) {	/* out of rx quota */
		retcode = 1;
		goto out;
	}
	writew(np->rx_done, np->base + CompletionQConsumerIdx);

 out: