From 6716ba9aadc93b2858ab800a84cb4335c92324ff Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 7 Dec 2012 16:46:04 +0000 Subject: mac80211: update to wireless-testing 2012-12-06 SVN-Revision: 34571 --- .../566-ath9k_use_ieee80211_free_txskb.patch | 149 --------------------- 1 file changed, 149 deletions(-) delete mode 100644 package/mac80211/patches/566-ath9k_use_ieee80211_free_txskb.patch (limited to 'package/mac80211/patches/566-ath9k_use_ieee80211_free_txskb.patch') diff --git a/package/mac80211/patches/566-ath9k_use_ieee80211_free_txskb.patch b/package/mac80211/patches/566-ath9k_use_ieee80211_free_txskb.patch deleted file mode 100644 index 820d5c9f42..0000000000 --- a/package/mac80211/patches/566-ath9k_use_ieee80211_free_txskb.patch +++ /dev/null @@ -1,149 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/xmit.c -+++ b/drivers/net/wireless/ath/ath9k/xmit.c -@@ -66,8 +66,7 @@ static void ath_tx_update_baw(struct ath - static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc, - struct ath_txq *txq, - struct ath_atx_tid *tid, -- struct sk_buff *skb, -- bool dequeue); -+ struct sk_buff *skb); - - enum { - MCS_HT20, -@@ -176,7 +175,15 @@ static void ath_tx_flush_tid(struct ath_ - fi = get_frame_info(skb); - bf = fi->bf; - -- if (bf && fi->retries) { -+ if (!bf) { -+ bf = ath_tx_setup_buffer(sc, txq, tid, skb); -+ if (!bf) { -+ ieee80211_free_txskb(sc->hw, skb); -+ continue; -+ } -+ } -+ -+ if (fi->retries) { - list_add_tail(&bf->list, &bf_head); - ath_tx_update_baw(sc, tid, bf->bf_state.seqno); - ath_tx_complete_buf(sc, bf, txq, &bf_head, &ts, 0); -@@ -789,10 +796,13 @@ static enum ATH_AGGR_STATUS ath_tx_form_ - fi = get_frame_info(skb); - bf = fi->bf; - if (!fi->bf) -- bf = ath_tx_setup_buffer(sc, txq, tid, skb, true); -+ bf = ath_tx_setup_buffer(sc, txq, tid, skb); - -- if (!bf) -+ if (!bf) { -+ __skb_unlink(skb, &tid->buf_q); -+ ieee80211_free_txskb(sc->hw, skb); - continue; -+ } - - bf->bf_state.bf_type = BUF_AMPDU | BUF_AGGR; - seqno = bf->bf_state.seqno; -@@ -1735,9 +1745,11 @@ static void ath_tx_send_ampdu(struct ath - return; - } - -- bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb, false); -- if (!bf) -+ bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb); -+ if (!bf) { -+ ieee80211_free_txskb(sc->hw, skb); - return; -+ } - - bf->bf_state.bf_type = BUF_AMPDU; - INIT_LIST_HEAD(&bf_head); -@@ -1761,11 +1773,6 @@ static void ath_tx_send_normal(struct at - struct ath_buf *bf; - - bf = fi->bf; -- if (!bf) -- bf = ath_tx_setup_buffer(sc, txq, tid, skb, false); -- -- if (!bf) -- return; - - INIT_LIST_HEAD(&bf_head); - list_add_tail(&bf->list, &bf_head); -@@ -1839,8 +1846,7 @@ u8 ath_txchainmask_reduction(struct ath_ - static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc, - struct ath_txq *txq, - struct ath_atx_tid *tid, -- struct sk_buff *skb, -- bool dequeue) -+ struct sk_buff *skb) - { - struct ath_common *common = ath9k_hw_common(sc->sc_ah); - struct ath_frame_info *fi = get_frame_info(skb); -@@ -1852,7 +1858,7 @@ static struct ath_buf *ath_tx_setup_buff - bf = ath_tx_get_buffer(sc); - if (!bf) { - ath_dbg(common, XMIT, "TX buffers are full\n"); -- goto error; -+ return NULL; - } - - ATH_TXBUF_RESET(bf); -@@ -1881,18 +1887,12 @@ static struct ath_buf *ath_tx_setup_buff - ath_err(ath9k_hw_common(sc->sc_ah), - "dma_mapping_error() on TX\n"); - ath_tx_return_buffer(sc, bf); -- goto error; -+ return NULL; - } - - fi->bf = bf; - - return bf; -- --error: -- if (dequeue) -- __skb_unlink(skb, &tid->buf_q); -- dev_kfree_skb_any(skb); -- return NULL; - } - - /* FIXME: tx power */ -@@ -1921,9 +1921,14 @@ static void ath_tx_start_dma(struct ath_ - */ - ath_tx_send_ampdu(sc, tid, skb, txctl); - } else { -- bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb, false); -- if (!bf) -+ bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb); -+ if (!bf) { -+ if (txctl->paprd) -+ dev_kfree_skb_any(skb); -+ else -+ ieee80211_free_txskb(sc->hw, skb); - return; -+ } - - bf->bf_state.bfs_paprd = txctl->paprd; - ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -775,7 +775,7 @@ static void ath9k_tx(struct ieee80211_hw - - return; - exit: -- dev_kfree_skb_any(skb); -+ ieee80211_free_txskb(hw, skb); - } - - static void ath9k_stop(struct ieee80211_hw *hw) ---- a/drivers/net/wireless/ath/ath9k/beacon.c -+++ b/drivers/net/wireless/ath/ath9k/beacon.c -@@ -120,7 +120,7 @@ static void ath9k_tx_cabq(struct ieee802 - - if (ath_tx_start(hw, skb, &txctl) != 0) { - ath_dbg(common, XMIT, "CABQ TX failed\n"); -- dev_kfree_skb_any(skb); -+ ieee80211_free_txskb(hw, skb); - } - } - -- cgit v1.2.3