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>
 
        /* 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 */