Re: [PATCH 1/2] wcn36xx: Pass used skb to ieee80211_tx_status()

From: Johannes Berg
Date: Thu Apr 27 2017 - 04:22:39 EST



> @@ -371,7 +371,7 @@ static void reap_tx_dxes(struct wcn36xx *wcn,
> struct wcn36xx_dxe_ch *ch)
> Â info = IEEE80211_SKB_CB(ctl->skb);
> Â if (!(info->flags &
> IEEE80211_TX_CTL_REQ_TX_STATUS)) {
> Â /* Keep frame until TX status comes
> */
> - ieee80211_free_txskb(wcn->hw, ctl-
> >skb);
> + ieee80211_tx_status(wcn->hw, ctl-
> >skb);
>

I don't think this is a good idea. This code intentionally checked if
TX status was requested, and if not then it doesn't go to the effort of
building it.

As it is with your patch, it'll go and report the TX status without any
TX status information - which is handled in wcn36xx_dxe_tx_ack_ind()
for those frames needing it.

johannes