From nobody Wed Nov 29 16:38:26 2023 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 4SgQ4L2pC5z52wvJ; Wed, 29 Nov 2023 16:38:26 +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 4SgQ4L27gdz3JZJ; Wed, 29 Nov 2023 16:38:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1701275906; 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=sPCHsOOD1augY2uYIk2epDys4X7LbpXFgTqnIjdQf1A=; b=iWNrJSW48iWNPKw0BxWuBtxTySYI2lPeYxWTonp59QBFV1f/Q96KCsN30UO42iXLlX311o DDBILsTYkcS1aQ1T4fkwcGiRqpXJdD+ChlFPEu9Ub9l1AJaga3i68C3aGe6KG/OuKrAsAs UXLmqmIj/2U90XoPPta7SPeJl9tufSSVg2LOzgiEjp5d528Ub11vQDHbIEQGGUueLXXp1H U1oPyCvMee4zJA05vGkYLQhMNG2pNQPKAUDsoymJMgPK55n3RtaPPzdZOec+plqdoBFDy+ MHxWp8kX6XeN8qGCg+9pTacFNgXkPhSMoeN5v68++tJ7GsajrdM6p1m0lq+oRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1701275906; 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=sPCHsOOD1augY2uYIk2epDys4X7LbpXFgTqnIjdQf1A=; b=PfcS8vVzWlmym6wuRhTWgQZvICc+GszfCwwNBC8zZq1wCrwSBJ6DJzyZMJ9NCsZeXJ4vnK FMShE7anEYvaNNAslaJ04aHBZr4VAcgpaE2Nz8OPhKbF19Z/jUJq98zXtGuslXBsC5SgeL OcXWJEwvWEZje/EFUyHGbCGgJ+HqOVheDmwER66ACFiZXHeTnxlIvo3ogAgBCWhCXpx7p3 s7DgZ3bszLE5ANXDw9NvUknsV52ChLa5rlAWaE70OPadOW3bFI2hslr5ahuayX1FE81Y4X hPRhZEXQUHaJ9h/QmZjDBxgX4WOPZApQgyjd3BnliJOWs/zMoM+7DHFlCy2Egw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1701275906; a=rsa-sha256; cv=none; b=Kep/8leikXBob77NwO7EUyvQDGXBXdGTwnNnfccJv0PdGnc7Yjv4qTbjjDOxt+uBINMac1 zbcddviMXEgZJBhgbCcFd50RZLGyfDdENT81NLl007OQAL23h26mTXPcHuSyzxErsDmCaw akpcNg+iQfOTqylny1joj8kz3PIeQ3kdppUvA8zgYFoC4DY2bsCJTsEJJmkBrUSmwTvOPb Q+30cBCUzRG6RczWh8ayj4spCfnavsTk5CCyBrxrgTPDOQ8dZcGFqoXVKqSosMjkaKYemM MMdF3X0lu3Pv+m+pYpNL2/jBLk284/YlHjK8CLq3froN9XsmDQSJZ7uRFoiyJg== 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 4SgQ4L143Kz1Cb0; Wed, 29 Nov 2023 16:38:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ATGcQ0L045799; Wed, 29 Nov 2023 16:38:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ATGcQna045796; Wed, 29 Nov 2023 16:38:26 GMT (envelope-from git) Date: Wed, 29 Nov 2023 16:38:26 GMT Message-Id: <202311291638.3ATGcQna045796@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: f55063e268af - stable/13 - LinuxKPI: 802.11: change ic_parent() to not call mo_stop()/mo_start() 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: f55063e268afa7f4e098d52afa7dc898b28899dd Auto-Submitted: auto-generated The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f55063e268afa7f4e098d52afa7dc898b28899dd commit f55063e268afa7f4e098d52afa7dc898b28899dd Author: Bjoern A. Zeeb AuthorDate: 2023-09-21 12:25:20 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-11-29 16:36:08 +0000 LinuxKPI: 802.11: change ic_parent() to not call mo_stop()/mo_start() Driven by net80211 we may call mac80211 ops stop() and start() mostly when toggling a first VAP. While this is FreeBSD behaviour the firmware based LinuxKPI drivers seem to possibly clear state in the case of stop() triggering further errors down the line. We call mo_start() when starting the VAP and mo_stop() when destroying it now only. In the future (e.g., in multi-VAP setups) we may need to re-address some of this so keep the code under #ifdef. Sponsored by: The FreeBSD Foundation (cherry picked from commit 8d58a0578635dc7dd1025ab08b0479f2b383e1a4) --- sys/compat/linuxkpi/common/src/linux_80211.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index bfc3e79929d7..fa22a0fce826 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -2460,24 +2460,32 @@ static void lkpi_ic_parent(struct ieee80211com *ic) { struct lkpi_hw *lhw; +#ifdef HW_START_STOP struct ieee80211_hw *hw; int error; +#endif bool start_all; IMPROVE(); lhw = ic->ic_softc; +#ifdef HW_START_STOP hw = LHW_TO_HW(lhw); +#endif start_all = false; /* IEEE80211_UNLOCK(ic); */ LKPI_80211_LHW_LOCK(lhw); if (ic->ic_nrunning > 0) { +#ifdef HW_START_STOP error = lkpi_80211_mo_start(hw); if (error == 0) +#endif start_all = true; } else { +#ifdef HW_START_STOP lkpi_80211_mo_stop(hw); +#endif } LKPI_80211_LHW_UNLOCK(lhw); /* IEEE80211_LOCK(ic); */