| From 8317104988595f22e275c0b7a55207cb00aee9ea Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 18 Mar 2021 13:04:19 -0700 |
| Subject: virt_wifi: Return micros for BSS TSF values |
| |
| From: A. Cody Schuffelen <schuffelen@google.com> |
| |
| [ Upstream commit b57aa17f07c9270e576ef7df09f142978b5a75f0 ] |
| |
| cfg80211_inform_bss expects to receive a TSF value, but is given the |
| time since boot in nanoseconds. TSF values are expected to be at |
| microsecond scale rather than nanosecond scale. |
| |
| Signed-off-by: A. Cody Schuffelen <schuffelen@google.com> |
| Link: https://lore.kernel.org/r/20210318200419.1421034-1-schuffelen@google.com |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/virt_wifi.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/wireless/virt_wifi.c b/drivers/net/wireless/virt_wifi.c |
| index c878097f0dda..1df959532c7d 100644 |
| --- a/drivers/net/wireless/virt_wifi.c |
| +++ b/drivers/net/wireless/virt_wifi.c |
| @@ -12,6 +12,7 @@ |
| #include <net/cfg80211.h> |
| #include <net/rtnetlink.h> |
| #include <linux/etherdevice.h> |
| +#include <linux/math64.h> |
| #include <linux/module.h> |
| |
| static struct wiphy *common_wiphy; |
| @@ -168,11 +169,11 @@ static void virt_wifi_scan_result(struct work_struct *work) |
| scan_result.work); |
| struct wiphy *wiphy = priv_to_wiphy(priv); |
| struct cfg80211_scan_info scan_info = { .aborted = false }; |
| + u64 tsf = div_u64(ktime_get_boottime_ns(), 1000); |
| |
| informed_bss = cfg80211_inform_bss(wiphy, &channel_5ghz, |
| CFG80211_BSS_FTYPE_PRESP, |
| - fake_router_bssid, |
| - ktime_get_boottime_ns(), |
| + fake_router_bssid, tsf, |
| WLAN_CAPABILITY_ESS, 0, |
| (void *)&ssid, sizeof(ssid), |
| DBM_TO_MBM(-50), GFP_KERNEL); |
| -- |
| 2.30.2 |
| |