Changeset 2529
- Timestamp:
- 07/03/07 19:11:18 (2 years ago)
- Files:
-
- trunk/ath/if_ath.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ath/if_ath.c
r2527 r2529 2488 2488 struct sk_buff *tskb; 2489 2489 int framecnt; 2490 int requeue = 0; 2490 2491 #ifdef ATH_SUPERG_FF 2491 2492 unsigned int pktlen; … … 2505 2506 } 2506 2507 2507 2508 2508 STAILQ_INIT(&bf_head); 2509 2509 … … 2512 2512 if (bf == NULL) 2513 2513 goto hardstart_fail; 2514 return ath_tx_startraw(dev, bf, skb); 2514 ath_tx_startraw(dev, bf, skb); 2515 return NETDEV_TX_OK; 2515 2516 } 2516 2517 … … 2544 2545 if (txq->axq_depth > TAIL_DROP_COUNT) { 2545 2546 sc->sc_stats.ast_tx_discard++; 2547 /* queue is full, let the kernel backlog the skb */ 2548 requeue = 1; 2546 2549 goto hardstart_fail; 2547 2550 } … … 2595 2598 ATH_TXQ_UNLOCK_IRQ_EARLY(txq); 2596 2599 2597 return 0;2600 return NETDEV_TX_OK; 2598 2601 } 2599 2602 } else { … … 2643 2646 2644 2647 goto ff_flush_done; 2645 2646 2647 2648 } 2648 2649 /* … … 2751 2752 #endif 2752 2753 2753 return 0;2754 return NETDEV_TX_OK; 2754 2755 2755 2756 hardstart_fail: … … 2768 2769 } 2769 2770 2771 /* let the kernel requeue the skb (dont free it!) */ 2772 if (requeue) 2773 return NETDEV_TX_BUSY; 2774 2770 2775 /* free sk_buffs */ 2771 2776 while (skb) { … … 2775 2780 skb = tskb; 2776 2781 } 2777 return 0; /* NB: return !0 only in a ``hard error condition'' */2782 return NETDEV_TX_OK; 2778 2783 } 2779 2784 #undef ATH_HARDSTART_GET_TX_BUF_WITH_LOCK
