mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
amd8111e: Fix rx return code
The amd8111e rx poll routine currently mishandles the case when we process exactly the number of packets specified in the budget. This patch is basically as suggested by David Miller. Signed-off-by: Chris Friesen <cfriesen@nortel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
882716604e
commit
48e5ecae69
1 changed files with 8 additions and 6 deletions
|
@ -833,12 +833,14 @@ static int amd8111e_rx_poll(struct napi_struct *napi, int budget)
|
|||
|
||||
} while(intr0 & RINT0);
|
||||
|
||||
/* Receive descriptor is empty now */
|
||||
spin_lock_irqsave(&lp->lock, flags);
|
||||
__netif_rx_complete(dev, napi);
|
||||
writel(VAL0|RINTEN0, mmio + INTEN0);
|
||||
writel(VAL2 | RDMD0, mmio + CMD0);
|
||||
spin_unlock_irqrestore(&lp->lock, flags);
|
||||
if (rx_pkt_limit > 0) {
|
||||
/* Receive descriptor is empty now */
|
||||
spin_lock_irqsave(&lp->lock, flags);
|
||||
__netif_rx_complete(dev, napi);
|
||||
writel(VAL0|RINTEN0, mmio + INTEN0);
|
||||
writel(VAL2 | RDMD0, mmio + CMD0);
|
||||
spin_unlock_irqrestore(&lp->lock, flags);
|
||||
}
|
||||
|
||||
rx_not_empty:
|
||||
return num_rx_pkt;
|
||||
|
|
Loading…
Reference in a new issue