| From bfb9b5ffc249ddcf6cc971d44a527f6f95cf35c1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 28 Sep 2021 14:00:47 +0300 |
| Subject: ath10k: Fix missing frame timestamp for beacon/probe-resp |
| |
| From: Loic Poulain <loic.poulain@linaro.org> |
| |
| [ Upstream commit e6dfbc3ba90cc2b619229be56b485f085a0a8e1c ] |
| |
| When receiving a beacon or probe response, we should update the |
| boottime_ns field which is the timestamp the frame was received at. |
| (cf mac80211.h) |
| |
| This fixes a scanning issue with Android since it relies on this |
| timestamp to determine when the AP has been seen for the last time |
| (via the nl80211 BSS_LAST_SEEN_BOOTTIME parameter). |
| |
| Fixes: 5e3dd157d7e7 ("ath10k: mac80211 driver for Qualcomm Atheros 802.11ac CQA98xx devices") |
| Signed-off-by: Loic Poulain <loic.poulain@linaro.org> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Link: https://lore.kernel.org/r/1629811733-7927-1-git-send-email-loic.poulain@linaro.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath10k/wmi.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c |
| index 91604a14a8f46..796bd93c599b1 100644 |
| --- a/drivers/net/wireless/ath/ath10k/wmi.c |
| +++ b/drivers/net/wireless/ath/ath10k/wmi.c |
| @@ -2541,6 +2541,10 @@ int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb) |
| if (ieee80211_is_beacon(hdr->frame_control)) |
| ath10k_mac_handle_beacon(ar, skb); |
| |
| + if (ieee80211_is_beacon(hdr->frame_control) || |
| + ieee80211_is_probe_resp(hdr->frame_control)) |
| + status->boottime_ns = ktime_get_boottime_ns(); |
| + |
| ath10k_dbg(ar, ATH10K_DBG_MGMT, |
| "event mgmt rx skb %pK len %d ftype %02x stype %02x\n", |
| skb, skb->len, |
| -- |
| 2.33.0 |
| |