pktgen: use common idle routine
authorStephen Hemminger <shemminger@vyatta.com>
Thu, 27 Aug 2009 13:55:18 +0000 (13:55 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Aug 2009 06:41:36 +0000 (23:41 -0700)
Simpler to have one place that spins and accounts for delays,
this will also make the last packet be detected faster for more
repeatable timing.

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

index 3045dd133071f84033f0ba1528ee95aafd3c01fd..ad41f06c13ca853bab08d901052809df3f05a3f9 100644 (file)
@@ -3458,16 +3458,10 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev)
 
        /* If pkt_dev->count is zero, then run forever */
        if ((pkt_dev->count != 0) && (pkt_dev->sofar >= pkt_dev->count)) {
-               if (atomic_read(&(pkt_dev->skb->users)) != 1) {
-                       ktime_t idle_start = ktime_now();
-                       while (atomic_read(&(pkt_dev->skb->users)) != 1) {
-                               if (signal_pending(current)) {
-                                       break;
-                               }
-                               schedule();
-                       }
-                       pkt_dev->idle_acc += ktime_to_ns(ktime_sub(ktime_now(),
-                                                                  idle_start));
+               while (atomic_read(&(pkt_dev->skb->users)) != 1) {
+                       if (signal_pending(current))
+                               break;
+                       idle(pkt_dev);
                }
 
                /* Done with this */