From nobody Sun Feb 20 18:15:46 2022 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 6CCBD19CF657; Sun, 20 Feb 2022 18:15:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4K1tsH0Ktpz4XVV; Sun, 20 Feb 2022 18:15:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645380947; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RWguhFgMul7Y2ry+A9OhokenFeDnGCreKt1M/k5d5TQ=; b=a5jHP+v5pUUiav1+TZMly0l0e67IGuv/koxuNIdJrCsZ3dl5F0Ishd5avR1hSPptsQ5ISN EYHwVuKMsmkt5X8uNQet7mFDLYMVRI42MuYYUosy9ktugzPN0Cax3d1OGaohrTvAGG77h6 SpDbhVF2KKkpxePBAR102bKdXQp+FUXk4FNh64+8xoR2eVV2PRG4DWadX/oMb2nqqoyCv6 MnPgchORNPxCpu6iC+78rJodpCuWEP6geDXlNu2kuKZgTVu2raBEx5UJSMAB6fKtmxsbQ3 lvvLqdXW71TOOs8R4Poixn6oOTd13oYWzlQx1nW4dXV9H9/NDI5u6s9ZL/zgcw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A57EC20DF9; Sun, 20 Feb 2022 18:15:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 21KIFkiG023130; Sun, 20 Feb 2022 18:15:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21KIFk8u023129; Sun, 20 Feb 2022 18:15:46 GMT (envelope-from git) Date: Sun, 20 Feb 2022 18:15:46 GMT Message-Id: <202202201815.21KIFk8u023129@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ada6a7cd6876 - stable/13 - LinuxKPI: 802.11 scan update List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ada6a7cd68760603abb02adf4afd9ebbeaf7b4cf Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645380947; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RWguhFgMul7Y2ry+A9OhokenFeDnGCreKt1M/k5d5TQ=; b=Z2hwxO9akMYa6E8riaR8rvmwgmbunYX/AtCsujp/JNke7LeTHcwslaj5i0EQHxmv2LDe2p m6cW88EYTkgU9gztqn89FuAwmkONbuYmdTwUsUbJ2ud5WXo7kKL01ZkkhcgE58dmfynrlr kNpMu8zA3/2N3g6/xnTIgXaiwk03hYldFFcoTdiE4GxqT3YhRoXcoHFxurjnbhYYNfrdkn fH9Y7KsnnFxFbDIZv0MnOtIuDJO0Z0s4VhRJhD+s+d7XmUnfhYvVxpO9UDwzyzJBcCQD9F ln0GMULvwFsFpFEezVfRy5K4bavEIQJMeFx7iFWeBCKDQwZU/1HOHlPiSVSUMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1645380947; a=rsa-sha256; cv=none; b=P5mOGnxPMEM627Mmf8oLaCFYemFmVWdU3oF2QKsrCZKDMHXqLgTbKKBtAuHm+pRFgWffWZ esSRnz8cpLVQiPlWbqtLpwctwMHsd1S97UWGegCsNJU7pGpN4fXaAMltHSGakbHUqdkHSl 2MTbDq0jldGx4KGFrYah+EusYTfJAXQ9zE5ssbJA5FsJO086FArkqELjId0LCPCosLEQ0s YCpJv9Wb/9+3xlvCWCBKVVgdHegoHYMBbMl0ZQ4xbAJY81xGasblZuqHi03k9yZ9TEWEIA dm0xLkHoHVa+JMJmFS2A929kxGs2NvPxuoEvcUxC253vCxduG3vlSQ+8zmjcKQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ada6a7cd68760603abb02adf4afd9ebbeaf7b4cf commit ada6a7cd68760603abb02adf4afd9ebbeaf7b4cf Author: Bjoern A. Zeeb AuthorDate: 2022-02-16 03:00:34 +0000 Commit: Bjoern A. Zeeb CommitDate: 2022-02-20 16:25:19 +0000 LinuxKPI: 802.11 scan update Realtek's rtw88 is returning a hard-coded 1 in case they cannot hw_scan (fw not advertising it). In that case if we want any scan to run we need to fall-back to sw scan. Start dealing with this. Long-term we probably need to keep internal state. (cherry picked from commit d3ef7fb459ff924911e5276db0c04b13cd8074d9) --- sys/compat/linuxkpi/common/src/linux_80211.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 8e5e948db5fa..473c98317694 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1883,13 +1883,13 @@ lkpi_ic_scan_start(struct ieee80211com *ic) ss = ic->ic_scan; vap = ss->ss_vap; if (vap->iv_state != IEEE80211_S_SCAN) { - /* Do not start a scan for now. */ + IMPROVE("We need to be able to scan if not in S_SCAN"); return; } hw = LHW_TO_HW(lhw); if ((ic->ic_flags_ext & IEEE80211_FEXT_SCAN_OFFLOAD) == 0) { - +sw_scan: lvif = VAP_TO_LVIF(vap); vif = LVIF_TO_VIF(lvif); @@ -1949,6 +1949,10 @@ lkpi_ic_scan_start(struct ieee80211com *ic) hw_req->req.ie_len = ; hw_req->req.ie = ; #endif +#if 0 + hw->wiphy->max_scan_ie_len + hw->wiphy->max_scan_ssids +#endif hw_req->req.n_channels = nchan; cpp = (struct linuxkpi_ieee80211_channel **)(hw_req + 1); @@ -1994,12 +1998,21 @@ lkpi_ic_scan_start(struct ieee80211com *ic) vif = LVIF_TO_VIF(lvif); error = lkpi_80211_mo_hw_scan(hw, vif, hw_req); if (error != 0) { - ic_printf(ic, "ERROR: %s: hw_scan returned %d\n", - __func__, error); - ieee80211_cancel_scan(vap); free(hw_req->ies.common_ies, M_80211_VAP); free(hw_req, M_LKPI80211); lhw->hw_req = NULL; + + /* + * XXX-SIGH magic number. + * rtw88 has a magic "return 1" if offloading scan is + * not possible. Fall back to sw scan in that case. + */ + if (error == 1) + goto sw_scan; + + ic_printf(ic, "ERROR: %s: hw_scan returned %d\n", + __func__, error); + ieee80211_cancel_scan(vap); } } }