From nobody Sun May 25 15:24:25 2025 X-Original-To: dev-commits-src-all@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 4b52kK74dPz5xfyY; Sun, 25 May 2025 15:24:25 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b52kK4PY1z3vFC; Sun, 25 May 2025 15:24:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748186665; 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=el4scnkYmm/c3jX6G9u0ZkDDLSdABeieiA+eXdSh+RU=; b=Cq2ezxasqg1KaZ6U/O3ob4Wcv8unkF3n0F7Gr4vwsmllov+5Ln6VAtOFrHCNhx8Exe4okg jcCx4QsfEusi6XH+hYwdLEh/CjxN3pyc6iJuHqK6DfyqrOcNpW6p4a4uwQHBFIIOv2I7Q0 t3yNd9t0gCiNycGTkD64RoggtgPWRcWGIrJIabRtQEuqMvRDjUqIddIPBZJ57waP7YdskS rCm+JYlqtDrP8tEskUvjufAblp4bRVMz25xEhhL5Q1cl/0r+rkE05njMdwm1el+WGtk63i 8fsLe6cKUErG76AH9XxWbJrvwPo+V+xc2XgaG2f369Ww49wqpgQNVX+Ewf2mRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748186665; 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=el4scnkYmm/c3jX6G9u0ZkDDLSdABeieiA+eXdSh+RU=; b=xbclttM4JEbM8QKX816C0G8AvpU6PJ8UuFAUGm1FXkNUJpWrPANBp42YsBAGfUnv7Kn5z3 iwf80TY+RtLMPybonSwJnqA2J4etQ31lSSbN56I6CLARKSwiW5b1KofXs3brjK62N7WPRM b+d99QaR6DeN60tBc1Rew0myefuQ0CPYHU8Qf/vTBmPyunBScAXiehu6XMaNFId8P5kqRg rM9ZVTBGMkTKf84MSzpXP60ZGVjA+Be1qQM1WyjozKLr090urS648ahul2dKT02BShV1sH rkYy9EP7F8v1YrzLFKhy+M/W+YIybY5LHlcb2JRhwuHGuMN5Iv2VrNT2MmKlAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748186665; a=rsa-sha256; cv=none; b=m4tg2LSMlocn3egpGnt8WgB7nYAPmE+XtVXRfPKCwlyW+H0dBqoY2MUJIqGmm9WDAbuBbi PgJToBMJAeNGPVAXfdkAiD7etcC5FPAEOUOo0Z5+P0NDK/OeVYyt2rSmTkKq/BWVbAiQOG 4nSPnnV6K3znmCDg96EHJDpAR6t+3HHKDQ1QgUJjrcuMv7INnDPn1uj0CD6IO/xBsrkJQO /D+NSkgA+Ma/1K3Sg3ZltotPSnxTtMQozjEx4Cnn+i675LJO8+xCvFn1FT73EHHDdxsWIQ YNQqQ0iDqxZJl8YyPqt584MJA4E2az1X3a360F46N5VvXL6Rqjw7oKAfbAhDWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4b52kK3yxGzBRS; Sun, 25 May 2025 15:24:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54PFOPZg031797; Sun, 25 May 2025 15:24:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54PFOPs8031793; Sun, 25 May 2025 15:24:25 GMT (envelope-from git) Date: Sun, 25 May 2025 15:24:25 GMT Message-Id: <202505251524.54PFOPs8031793@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Adrian Chadd Subject: git: 3f6a84ffbf39 - main - net80211: refactor the if_input call into ieee80211_vap_deliver_data() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adrian X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3f6a84ffbf39c0e5e7673e6f73cf439507799e5e Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=3f6a84ffbf39c0e5e7673e6f73cf439507799e5e commit 3f6a84ffbf39c0e5e7673e6f73cf439507799e5e Author: Adrian Chadd AuthorDate: 2025-05-18 04:16:55 +0000 Commit: Adrian Chadd CommitDate: 2025-05-25 15:23:14 +0000 net80211: refactor the if_input call into ieee80211_vap_deliver_data() Refactor the two places where NET_EPOCH_ENTER; if_input; NET_EPOCH_EXIT are called into a single spot in ieee80211_freebsd.c. This removes both if_input references and puts all the NET_EPOCH stuff into ieee80211_freebsd.c. Differential Revision: https://reviews.freebsd.org/D50404 Reviewed by: bz --- sys/net80211/ieee80211_freebsd.c | 21 +++++++++++++++++++++ sys/net80211/ieee80211_freebsd.h | 1 + sys/net80211/ieee80211_hostap.c | 7 ++----- sys/net80211/ieee80211_input.c | 6 ++---- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c index 5098529beb47..0a51063e1d9a 100644 --- a/sys/net80211/ieee80211_freebsd.c +++ b/sys/net80211/ieee80211_freebsd.c @@ -1236,6 +1236,27 @@ ieee80211_vap_copy_mac_address(struct ieee80211vap *vap) NET_EPOCH_EXIT(et); } +/** + * @brief Deliver data into the upper ifp of the VAP interface + * + * This delivers an 802.3 frame from net80211 up to the operating + * system network interface layer. + * + * @param vap the current VAP + * @param m the 802.3 frame to pass up to the VAP interface + * + * Note: this API consumes the mbuf. + */ +void +ieee80211_vap_deliver_data(struct ieee80211vap *vap, struct mbuf *m) +{ + struct epoch_tracker et; + + NET_EPOCH_ENTER(et); + if_input(vap->iv_ifp, m); + NET_EPOCH_EXIT(et); +} + /* * Module glue. * diff --git a/sys/net80211/ieee80211_freebsd.h b/sys/net80211/ieee80211_freebsd.h index bdc78fe99d36..442c5edef52d 100644 --- a/sys/net80211/ieee80211_freebsd.h +++ b/sys/net80211/ieee80211_freebsd.h @@ -542,6 +542,7 @@ struct debugnet80211_methods { void ieee80211_vap_sync_mac_address(struct ieee80211vap *); void ieee80211_vap_copy_mac_address(struct ieee80211vap *); +void ieee80211_vap_deliver_data(struct ieee80211vap *, struct mbuf *); #endif /* _KERNEL */ diff --git a/sys/net80211/ieee80211_hostap.c b/sys/net80211/ieee80211_hostap.c index 1573d83f4cb4..e9105f2e7505 100644 --- a/sys/net80211/ieee80211_hostap.c +++ b/sys/net80211/ieee80211_hostap.c @@ -416,8 +416,6 @@ hostap_deliver_data(struct ieee80211vap *vap, (void) ieee80211_vap_xmitpkt(vap, mcopy); } if (m != NULL) { - struct epoch_tracker et; - /* * Mark frame as coming from vap's interface. */ @@ -434,9 +432,8 @@ hostap_deliver_data(struct ieee80211vap *vap, m->m_pkthdr.ether_vtag = ni->ni_vlan; m->m_flags |= M_VLANTAG; } - NET_EPOCH_ENTER(et); - ifp->if_input(ifp, m); - NET_EPOCH_EXIT(et); + + ieee80211_vap_deliver_data(vap, m); } } diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c index 925918c872dc..7befff22bd6f 100644 --- a/sys/net80211/ieee80211_input.c +++ b/sys/net80211/ieee80211_input.c @@ -274,7 +274,6 @@ void ieee80211_deliver_data(struct ieee80211vap *vap, struct ieee80211_node *ni, struct mbuf *m) { - struct epoch_tracker et; struct ether_header *eh = mtod(m, struct ether_header *); struct ifnet *ifp = vap->iv_ifp; @@ -305,9 +304,8 @@ ieee80211_deliver_data(struct ieee80211vap *vap, m->m_pkthdr.ether_vtag = ni->ni_vlan; m->m_flags |= M_VLANTAG; } - NET_EPOCH_ENTER(et); - ifp->if_input(ifp, m); - NET_EPOCH_EXIT(et); + + ieee80211_vap_deliver_data(vap, m); } struct mbuf *