mirror of https://gitee.com/openkylin/linux.git
wil6210: report boottime_ns in scan results
Call cfg80211_inform_bss_frame_data to report cfg80211 on the boottime_ns in order to prevent the scan results filtering due to aging. Signed-off-by: Maya Erez <merez@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
068f359aac
commit
058b3f1124
|
@ -878,6 +878,12 @@ static void wmi_evt_rx_mgmt(struct wil6210_vif *vif, int id, void *d, int len)
|
|||
|
||||
if (ieee80211_is_beacon(fc) || ieee80211_is_probe_resp(fc)) {
|
||||
struct cfg80211_bss *bss;
|
||||
struct cfg80211_inform_bss bss_data = {
|
||||
.chan = channel,
|
||||
.scan_width = NL80211_BSS_CHAN_WIDTH_20,
|
||||
.signal = signal,
|
||||
.boottime_ns = ktime_to_ns(ktime_get_boottime()),
|
||||
};
|
||||
u64 tsf = le64_to_cpu(rx_mgmt_frame->u.beacon.timestamp);
|
||||
u16 cap = le16_to_cpu(rx_mgmt_frame->u.beacon.capab_info);
|
||||
u16 bi = le16_to_cpu(rx_mgmt_frame->u.beacon.beacon_int);
|
||||
|
@ -892,8 +898,9 @@ static void wmi_evt_rx_mgmt(struct wil6210_vif *vif, int id, void *d, int len)
|
|||
|
||||
wil_dbg_wmi(wil, "Capability info : 0x%04x\n", cap);
|
||||
|
||||
bss = cfg80211_inform_bss_frame(wiphy, channel, rx_mgmt_frame,
|
||||
d_len, signal, GFP_KERNEL);
|
||||
bss = cfg80211_inform_bss_frame_data(wiphy, &bss_data,
|
||||
rx_mgmt_frame,
|
||||
d_len, GFP_KERNEL);
|
||||
if (bss) {
|
||||
wil_dbg_wmi(wil, "Added BSS %pM\n",
|
||||
rx_mgmt_frame->bssid);
|
||||
|
@ -1391,6 +1398,10 @@ wmi_evt_sched_scan_result(struct wil6210_vif *vif, int id, void *d, int len)
|
|||
__le16 fc;
|
||||
u32 d_len;
|
||||
struct cfg80211_bss *bss;
|
||||
struct cfg80211_inform_bss bss_data = {
|
||||
.scan_width = NL80211_BSS_CHAN_WIDTH_20,
|
||||
.boottime_ns = ktime_to_ns(ktime_get_boottime()),
|
||||
};
|
||||
|
||||
if (flen < 0) {
|
||||
wil_err(wil, "sched scan result event too short, len %d\n",
|
||||
|
@ -1433,8 +1444,10 @@ wmi_evt_sched_scan_result(struct wil6210_vif *vif, int id, void *d, int len)
|
|||
return;
|
||||
}
|
||||
|
||||
bss = cfg80211_inform_bss_frame(wiphy, channel, rx_mgmt_frame,
|
||||
d_len, signal, GFP_KERNEL);
|
||||
bss_data.signal = signal;
|
||||
bss_data.chan = channel;
|
||||
bss = cfg80211_inform_bss_frame_data(wiphy, &bss_data, rx_mgmt_frame,
|
||||
d_len, GFP_KERNEL);
|
||||
if (bss) {
|
||||
wil_dbg_wmi(wil, "Added BSS %pM\n", rx_mgmt_frame->bssid);
|
||||
cfg80211_put_bss(wiphy, bss);
|
||||
|
|
Loading…
Reference in New Issue