iwl_update_stats(priv, true, fc, len);
+ memset(&info->status, 0, sizeof(info->status));
+
info->driver_data[0] = ctx;
info->driver_data[1] = dev_cmd;
IWL_DEBUG_COEX(priv, "receive reply tx w/ bt_kill\n");
}
+ if (tx_resp->frame_count == 1)
+ return;
+
/* Construct bit-map of pending frames within Tx window */
for (i = 0; i < tx_resp->frame_count; i++) {
u16 fstatus = le16_to_cpu(frame_status[i].status);
else
WARN_ON_ONCE(1);
- if (freed == 0) {
+ info = IEEE80211_SKB_CB(skb);
+ kmem_cache_free(priv->tx_cmd_pool, (info->driver_data[1]));
+
+ if (freed == 1) {
/* this is the first skb we deliver in this batch */
/* put the rate scaling data there */
info = IEEE80211_SKB_CB(skb);
info);
}
- info = IEEE80211_SKB_CB(skb);
- kmem_cache_free(priv->tx_cmd_pool, (info->driver_data[1]));
-
ieee80211_tx_status_irqsafe(priv->hw, skb);
}