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