pktgen: cleanup clone count test
Stephen Hemminger [Thu, 27 Aug 2009 13:55:12 +0000 (13:55 +0000)]
The if statement to test for "should a new packet be used"
can be simplified.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/core/pktgen.c

index 89fd232..90d48cc 100644 (file)
@@ -3395,23 +3395,22 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev)
                return;
        }
 
-       if (pkt_dev->last_ok || !pkt_dev->skb) {
-               if ((++pkt_dev->clone_count >= pkt_dev->clone_skb)
-                   || (!pkt_dev->skb)) {
-                       /* build a new pkt */
-                       kfree_skb(pkt_dev->skb);
-
-                       pkt_dev->skb = fill_packet(odev, pkt_dev);
-                       if (pkt_dev->skb == NULL) {
-                               printk(KERN_ERR "pktgen: ERROR: couldn't "
-                                      "allocate skb in fill_packet.\n");
-                               schedule();
-                               pkt_dev->clone_count--; /* back out increment, OOM */
-                               return;
-                       }
-                       pkt_dev->allocated_skbs++;
-                       pkt_dev->clone_count = 0;       /* reset counter */
+       if (!pkt_dev->skb || (pkt_dev->last_ok &&
+                             ++pkt_dev->clone_count >= pkt_dev->clone_skb)) {
+               /* build a new pkt */
+               kfree_skb(pkt_dev->skb);
+
+               pkt_dev->skb = fill_packet(odev, pkt_dev);
+               if (pkt_dev->skb == NULL) {
+                       printk(KERN_ERR "pktgen: ERROR: couldn't "
+                              "allocate skb in fill_packet.\n");
+                       schedule();
+                       pkt_dev->clone_count--; /* back out increment, OOM */
+                       return;
                }
+
+               pkt_dev->allocated_skbs++;
+               pkt_dev->clone_count = 0;       /* reset counter */
        }
 
        /* fill_packet() might have changed the queue */
@@ -3476,7 +3475,6 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev)
                /* Done with this */
                pktgen_stop_device(pkt_dev);
        }
-out:;
 }
 
 /*