diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2011-10-10 23:20:13 +0200 |
---|---|---|
committer | Philippe LANGLAIS <philippe.langlais@stericsson.com> | 2011-10-13 10:25:09 +0200 |
commit | 7a2de54ab4a67e97bc1a4fac9b84eb6c307f9488 (patch) | |
tree | 1001141bce26ea659b625841c687823b9d53a1a7 /drivers/staging/cw1200/txrx.c | |
parent | 98a9d7c86ef2ff6df10008dbb93a8139a79a9f33 (diff) |
cw1200: Requeue special frames.
Some frames require special handling in wsm, for example
offchannel, wep, join...
Requeue for offchannel and wep frames was missing, leading
to queue entry leakage and unexpected drop of frames.
Fix implements requeue for special frames.
Change-Id: Iba5c41496f898e30b4261db3888bba384504df50
Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33596
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/txrx.c')
-rw-r--r-- | drivers/staging/cw1200/txrx.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/staging/cw1200/txrx.c b/drivers/staging/cw1200/txrx.c index d49f5dce09e..ef5accb19a0 100644 --- a/drivers/staging/cw1200/txrx.c +++ b/drivers/staging/cw1200/txrx.c @@ -828,6 +828,7 @@ void cw1200_tx_confirm_cb(struct cw1200_common *priv, u8 queue_id = cw1200_queue_get_queue_id(arg->packetID); struct cw1200_queue *queue = &priv->tx_queue[queue_id]; struct sk_buff *skb; + const struct cw1200_txpriv *txpriv; txrx_printk(KERN_DEBUG "[TX] TX confirm: %d, %d.\n", arg->status, arg->ackFailures); @@ -861,7 +862,7 @@ void cw1200_tx_confirm_cb(struct cw1200_common *priv, WARN_ON(cw1200_queue_requeue(queue, arg->packetID)); } else if (!WARN_ON(cw1200_queue_get_skb( - queue, arg->packetID, &skb))) { + queue, arg->packetID, &skb, &txpriv))) { struct ieee80211_tx_info *tx = IEEE80211_SKB_CB(skb); int tx_count = arg->ackFailures; u8 ht_flags = 0; |