|
@@ -3104,13 +3104,17 @@ static int nv_napi_poll(struct net_device *dev, int *budget)
|
|
|
struct fe_priv *np = netdev_priv(dev);
|
|
|
u8 __iomem *base = get_hwbase(dev);
|
|
|
unsigned long flags;
|
|
|
+ int retcode;
|
|
|
|
|
|
- if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2)
|
|
|
+ if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) {
|
|
|
pkts = nv_rx_process(dev, limit);
|
|
|
- else
|
|
|
+ retcode = nv_alloc_rx(dev);
|
|
|
+ } else {
|
|
|
pkts = nv_rx_process_optimized(dev, limit);
|
|
|
+ retcode = nv_alloc_rx_optimized(dev);
|
|
|
+ }
|
|
|
|
|
|
- if (nv_alloc_rx(dev)) {
|
|
|
+ if (retcode) {
|
|
|
spin_lock_irqsave(&np->lock, flags);
|
|
|
if (!np->in_shutdown)
|
|
|
mod_timer(&np->oom_kick, jiffies + OOM_REFILL);
|