Device specific descriptor for each TX packet is prepared on top of
skb data address. This descriptor should be pulled out before
indicating the TX status to mac80211.
Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
                            int status)
 {
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+       struct skb_info *tx_params;
 
-       memset(info->driver_data, 0, IEEE80211_TX_INFO_DRIVER_DATA_SIZE);
+       if (!adapter->hw) {
+               rsi_dbg(ERR_ZONE, "##### No MAC #####\n");
+               return;
+       }
 
        if (!status)
                info->flags |= IEEE80211_TX_STAT_ACK;
 
+       tx_params = (struct skb_info *)info->driver_data;
+       skb_pull(skb, tx_params->internal_hdr_size);
+       memset(info->driver_data, 0, IEEE80211_TX_INFO_DRIVER_DATA_SIZE);
+
        ieee80211_tx_status_irqsafe(adapter->hw, skb);
 }