Hi Johannes and all, This is v3 of RFC patch aimed at fixing duplicated scan entries after channel switch. The major change is updating non-transmitting bss entries. Since such a bss cannot change channel without its transmitting bss (and vice versa), the whole hierarchy of transmitting bss is updated, including channel and location in rb-tree. Suggested approach to handle non-transmitting BSS entries is simplified in the following sense. If new entries have been already created after channel switch, only transmitting bss will be updated using IEs of new entry for the same transmitting bss. Non-transmitting bss entries will be updated as soon as new mgmt frames are received. Updating non-transmitting bss entries seems too expensive: nested nontrans_list traversing is needed since we can not rely on the same order of old and new non-transmitting entries. Basic use-case tested using both iwlwifi and qtnfmac. However multi-BSSID support has not yet been tested. Regards, Sergey v1 -> v2 - use IEs of new BSS entry to update known BSS entry for this purpose extract BSS update code from cfg80211_bss_update into a separate function cfg80211_update_known_bss v2 -> v3 - minor cleanup according to review comments - split cfg80211_update_known_bss function into a separate patch - update channel and location in rb-tree for nontransmit bss entries Sergey Matyukevich (2): cfg80211: refactor cfg80211_bss_update cfg80211: fix duplicated scan entries after channel switch net/wireless/core.h | 2 + net/wireless/nl80211.c | 2 +- net/wireless/scan.c | 250 +++++++++++++++++++++++++++++++++---------------- 3 files changed, 171 insertions(+), 83 deletions(-) -- 2.11.0