mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
cfg80211: give all multi-BSSID BSS entries the same timestamp
If we just read jiffies over and over again, a non-transmitting entry may have a newer timestamp than the transmitting one, leading to possible confusion on expiry. Give them all the same timestamp when creating them. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Link: https://lore.kernel.org/r/20190703133823.10530-3-johannes@sipsolutions.net Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
b0d1d7ffc5
commit
60d7dfea00
@ -1368,6 +1368,7 @@ cfg80211_inform_single_bss_data(struct wiphy *wiphy,
|
||||
struct cfg80211_internal_bss tmp = {}, *res;
|
||||
int bss_type;
|
||||
bool signal_valid;
|
||||
unsigned long ts;
|
||||
|
||||
if (WARN_ON(!wiphy))
|
||||
return NULL;
|
||||
@ -1390,8 +1391,11 @@ cfg80211_inform_single_bss_data(struct wiphy *wiphy,
|
||||
tmp.ts_boottime = data->boottime_ns;
|
||||
if (non_tx_data) {
|
||||
tmp.pub.transmitted_bss = non_tx_data->tx_bss;
|
||||
ts = bss_from_pub(non_tx_data->tx_bss)->ts;
|
||||
tmp.pub.bssid_index = non_tx_data->bssid_index;
|
||||
tmp.pub.max_bssid_indicator = non_tx_data->max_bssid_indicator;
|
||||
} else {
|
||||
ts = jiffies;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1425,8 +1429,7 @@ cfg80211_inform_single_bss_data(struct wiphy *wiphy,
|
||||
|
||||
signal_valid = abs(data->chan->center_freq - channel->center_freq) <=
|
||||
wiphy->max_adj_channel_rssi_comp;
|
||||
res = cfg80211_bss_update(wiphy_to_rdev(wiphy), &tmp, signal_valid,
|
||||
jiffies);
|
||||
res = cfg80211_bss_update(wiphy_to_rdev(wiphy), &tmp, signal_valid, ts);
|
||||
if (!res)
|
||||
return NULL;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user