Skip to content

Commit e61fbfc

Browse files
Vasanthakumar Thiagarajanjmberg-intel
authored andcommitted
mac80211: Fix bug in Tx ack status reporting in 802.3 xmit path
Allocated ack_frame id from local->ack_status_frames is not really stored in the tx_info for 802.3 Tx path. Due to this, tx ack status is not reported and ack_frame id is not freed for the buffers requiring tx ack status. Also move the memset to 0 of tx_info before IEEE80211_TX_CTL_REQ_TX_STATUS flag assignment. Fixes: 50ff477 ("mac80211: add 802.11 encapsulation offloading support") Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Johannes Berg <[email protected]>
1 parent 4052d3d commit e61fbfc

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

net/mac80211/tx.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4230,11 +4230,12 @@ static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
42304230
test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state))
42314231
goto out_free;
42324232

4233+
memset(info, 0, sizeof(*info));
4234+
42334235
if (unlikely(!multicast && skb->sk &&
42344236
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS))
4235-
ieee80211_store_ack_skb(local, skb, &info->flags, NULL);
4236-
4237-
memset(info, 0, sizeof(*info));
4237+
info->ack_frame_id = ieee80211_store_ack_skb(local, skb,
4238+
&info->flags, NULL);
42384239

42394240
if (unlikely(sdata->control_port_protocol == ehdr->h_proto)) {
42404241
if (sdata->control_port_no_encrypt)

0 commit comments

Comments
 (0)