nl80211: Clear the last saved TX frame cookie on wait expiration

drv->send_frame_cookies[] was already cleared, but
dev->send_frame_cookie was not. This resulted in unnecessary attempts of
canceling the TX wait for a wait that had already expired. While this
does not really result in real issues, it is cleaner to get rid of the
error messages from the debug log by skipping the unnecessary
operations.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Jouni Malinen 2022-02-15 16:15:41 +02:00 committed by Jouni Malinen
parent db7f14c825
commit 7e6f59c702
2 changed files with 7 additions and 3 deletions

View file

@ -8294,7 +8294,8 @@ static void wpa_driver_nl80211_send_action_cancel_wait(void *priv)
u64 cookie;
/* Cancel the last pending TX cookie */
nl80211_frame_wait_cancel(bss, drv->send_frame_cookie);
if (drv->send_frame_cookie != (u64) -1)
nl80211_frame_wait_cancel(bss, drv->send_frame_cookie);
/*
* Cancel the other pending TX cookies, if any. This is needed since

View file

@ -2880,9 +2880,12 @@ static void nl80211_frame_wait_cancel(struct wpa_driver_nl80211_data *drv,
}
}
wpa_printf(MSG_DEBUG,
"nl80211: TX frame wait expired for cookie 0x%llx%s",
"nl80211: TX frame wait expired for cookie 0x%llx%s%s",
(long long unsigned int) cookie,
match ? " (match)" : "");
match ? " (match)" : "",
drv->send_frame_cookie == cookie ? " (match-saved)" : "");
if (drv->send_frame_cookie == cookie)
drv->send_frame_cookie = (u64) -1;
if (!match)
return;