Browse Source

forcedeth: fix rx-work condition in nv_rx_process_optimized() too

The merge of my previous fix to forcedeth.c,
bcb5febb248f7cc1e4a39ff61507f6343ba1c594, lost an important hunk.

We need to fix nv_rx_process_optimized() too, as it contains duplicate logic.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Ingo Molnar 17 years ago
parent
commit
c1b7151a5e
1 changed files with 5 additions and 3 deletions
  1. 5 3
      drivers/net/forcedeth.c

+ 5 - 3
drivers/net/forcedeth.c

@@ -2408,13 +2408,13 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
 	struct fe_priv *np = netdev_priv(dev);
 	struct fe_priv *np = netdev_priv(dev);
 	u32 flags;
 	u32 flags;
 	u32 vlanflags = 0;
 	u32 vlanflags = 0;
-	u32 rx_processed_cnt = 0;
+	int rx_work = 0;
 	struct sk_buff *skb;
 	struct sk_buff *skb;
 	int len;
 	int len;
 
 
 	while((np->get_rx.ex != np->put_rx.ex) &&
 	while((np->get_rx.ex != np->put_rx.ex) &&
 	      !((flags = le32_to_cpu(np->get_rx.ex->flaglen)) & NV_RX2_AVAIL) &&
 	      !((flags = le32_to_cpu(np->get_rx.ex->flaglen)) & NV_RX2_AVAIL) &&
-	      (rx_processed_cnt++ < limit)) {
+	      (rx_work < limit)) {
 
 
 		dprintk(KERN_DEBUG "%s: nv_rx_process_optimized: flags 0x%x.\n",
 		dprintk(KERN_DEBUG "%s: nv_rx_process_optimized: flags 0x%x.\n",
 					dev->name, flags);
 					dev->name, flags);
@@ -2517,9 +2517,11 @@ next_pkt:
 			np->get_rx.ex = np->first_rx.ex;
 			np->get_rx.ex = np->first_rx.ex;
 		if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx))
 		if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx))
 			np->get_rx_ctx = np->first_rx_ctx;
 			np->get_rx_ctx = np->first_rx_ctx;
+
+		rx_work++;
 	}
 	}
 
 
-	return rx_processed_cnt;
+	return rx_work;
 }
 }
 
 
 static void set_bufsize(struct net_device *dev)
 static void set_bufsize(struct net_device *dev)