struct ath10k_htc_hdr *hdr;
 
        hdr = (struct ath10k_htc_hdr *)skb->data;
-       memset(hdr, 0, sizeof(*hdr));
 
        hdr->eid = ep->eid;
        hdr->len = __cpu_to_le16(skb->len - sizeof(*hdr));
+       hdr->flags = 0;
 
        spin_lock_bh(&ep->htc->tx_lock);
        hdr->seq_no = ep->seq_no++;
 
        /* refcount is decremented by HTC and HTT completions until it reaches
         * zero and is freed */
        skb_cb = ATH10K_SKB_CB(txdesc);
+       skb_cb->htt.is_conf = false;
        skb_cb->htt.msdu_id = msdu_id;
        skb_cb->htt.refcount = 2;
        skb_cb->htt.msdu = msdu;
+       skb_cb->htt.txfrag = NULL;
 
        res = ath10k_htc_send(&htt->ar->htc, htt->eid, txdesc);
        if (res)
 
        skb_put(txdesc, desc_len);
        cmd = (struct htt_cmd *)txdesc->data;
-       memset(cmd, 0, desc_len);
 
        tid = ATH10K_SKB_CB(msdu)->htt.tid;
 
        /* refcount is decremented by HTC and HTT completions until it reaches
         * zero and is freed */
        skb_cb = ATH10K_SKB_CB(txdesc);
+       skb_cb->htt.is_conf = false;
        skb_cb->htt.msdu_id = msdu_id;
        skb_cb->htt.refcount = 2;
        skb_cb->htt.txfrag = txfrag;
 
                ath10k_tx_h_seq_no(skb);
        }
 
-       memset(ATH10K_SKB_CB(skb), 0, sizeof(*ATH10K_SKB_CB(skb)));
+       ATH10K_SKB_CB(skb)->is_mapped = false;
+       ATH10K_SKB_CB(skb)->is_aborted = false;
+       ATH10K_SKB_CB(skb)->htt.is_offchan = false;
        ATH10K_SKB_CB(skb)->htt.vdev_id = vdev_id;
        ATH10K_SKB_CB(skb)->htt.tid = tid;
 
 
        ath10k_report_offchan_tx(htt->ar, msdu);
 
        info = IEEE80211_SKB_CB(msdu);
-       memset(&info->status, 0, sizeof(info->status));
 
        if (ATH10K_SKB_CB(txdesc)->htt.discard) {
                ieee80211_free_txskb(htt->ar->hw, msdu);