git: 266cae806264 - stable/13 - LinuxKPI: 802.11 advertise full offload scanning based on hw_scan only

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Sun, 20 Feb 2022 18:15:52 UTC
The branch stable/13 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=266cae8062643bd8e54f3dd34904fe4ff38d017a

commit 266cae8062643bd8e54f3dd34904fe4ff38d017a
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2022-02-17 00:15:56 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2022-02-20 16:25:49 +0000

    LinuxKPI: 802.11 advertise full offload scanning based on hw_scan only
    
    We disabled hw_scan for drivers not advertising SINGLE_SCAN_ON_ALL_BANDS.
    Do not depend on this hw flag to set IEEE80211_FEXT_SCAN_OFFLOAD for
    net80211 as otherwise scanning will never work.
    Long-term we probably want to re-think how we do/integrate hw_scan
    better in net80211.
    
    Sponsored by:   The FreeBSD Foundation
    
    (cherry picked from commit cc4e78d51351d6362b0536e326280c1e230648d5)
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
index 6e5bf19d0aa1..520ecaf4f4f0 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -2874,9 +2874,14 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw)
 	/* Scanning is a different kind of beast to re-work. */
 	ic->ic_caps |= IEEE80211_C_BGSCAN;
 #endif
-	if (lhw->ops->hw_scan &&
-	    ieee80211_hw_check(hw, SINGLE_SCAN_ON_ALL_BANDS)) {
-		/* Advertise full-offload scanning */
+	if (lhw->ops->hw_scan) {
+		/*
+		 * Advertise full-offload scanning.
+		 *
+		 * Not limiting to SINGLE_SCAN_ON_ALL_BANDS here as otherwise
+		 * we essentially disable hw_scan for all drivers not setting
+		 * the flag.
+		 */
 		ic->ic_flags_ext |= IEEE80211_FEXT_SCAN_OFFLOAD;
 	}