pktgen.c (ce7613db2d8d4d5af2587ab5d7090055c4562201) pktgen.c (0f2eea4b7e29ab693b07f6eedf8e87a0c11b8b42)
1/*
2 * Authors:
3 * Copyright 2001, 2002 by Robert Olsson <robert.olsson@its.uu.se>
4 * Uppsala University and
5 * Swedish University of Agricultural Sciences
6 *
7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
8 * Ben Greear <greearb@candelatech.com>

--- 3324 unchanged lines hidden (view full) ---

3333 }
3334
3335 if (pkt_dev->delay && pkt_dev->last_ok)
3336 spin(pkt_dev, pkt_dev->next_tx);
3337
3338 queue_map = skb_get_queue_mapping(pkt_dev->skb);
3339 txq = netdev_get_tx_queue(odev, queue_map);
3340
1/*
2 * Authors:
3 * Copyright 2001, 2002 by Robert Olsson <robert.olsson@its.uu.se>
4 * Uppsala University and
5 * Swedish University of Agricultural Sciences
6 *
7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
8 * Ben Greear <greearb@candelatech.com>

--- 3324 unchanged lines hidden (view full) ---

3333 }
3334
3335 if (pkt_dev->delay && pkt_dev->last_ok)
3336 spin(pkt_dev, pkt_dev->next_tx);
3337
3338 queue_map = skb_get_queue_mapping(pkt_dev->skb);
3339 txq = netdev_get_tx_queue(odev, queue_map);
3340
3341 __netif_tx_lock_bh(txq);
3341 local_bh_disable();
3342
3342
3343 HARD_TX_LOCK(odev, txq, smp_processor_id());
3344
3343 if (unlikely(netif_xmit_frozen_or_drv_stopped(txq))) {
3344 ret = NETDEV_TX_BUSY;
3345 pkt_dev->last_ok = 0;
3346 goto unlock;
3347 }
3348 atomic_inc(&(pkt_dev->skb->users));
3349 ret = (*xmit)(pkt_dev->skb, odev);
3350

--- 18 unchanged lines hidden (view full) ---

3369 /* fallthru */
3370 case NETDEV_TX_LOCKED:
3371 case NETDEV_TX_BUSY:
3372 /* Retry it next time */
3373 atomic_dec(&(pkt_dev->skb->users));
3374 pkt_dev->last_ok = 0;
3375 }
3376unlock:
3345 if (unlikely(netif_xmit_frozen_or_drv_stopped(txq))) {
3346 ret = NETDEV_TX_BUSY;
3347 pkt_dev->last_ok = 0;
3348 goto unlock;
3349 }
3350 atomic_inc(&(pkt_dev->skb->users));
3351 ret = (*xmit)(pkt_dev->skb, odev);
3352

--- 18 unchanged lines hidden (view full) ---

3371 /* fallthru */
3372 case NETDEV_TX_LOCKED:
3373 case NETDEV_TX_BUSY:
3374 /* Retry it next time */
3375 atomic_dec(&(pkt_dev->skb->users));
3376 pkt_dev->last_ok = 0;
3377 }
3378unlock:
3377 __netif_tx_unlock_bh(txq);
3379 HARD_TX_UNLOCK(odev, txq);
3378
3380
3381 local_bh_enable();
3382
3379 /* If pkt_dev->count is zero, then run forever */
3380 if ((pkt_dev->count != 0) && (pkt_dev->sofar >= pkt_dev->count)) {
3381 pktgen_wait_for_skb(pkt_dev);
3382
3383 /* Done with this */
3384 pktgen_stop_device(pkt_dev);
3385 }
3386}

--- 441 unchanged lines hidden ---
3383 /* If pkt_dev->count is zero, then run forever */
3384 if ((pkt_dev->count != 0) && (pkt_dev->sofar >= pkt_dev->count)) {
3385 pktgen_wait_for_skb(pkt_dev);
3386
3387 /* Done with this */
3388 pktgen_stop_device(pkt_dev);
3389 }
3390}

--- 441 unchanged lines hidden ---