Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Apr 2024 17:31:00 GMT
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: ac867c20e674 - main - LinuxKPI: 802.11: remove unneeded re-lookup in lkpi_80211_txq_tx_one()
Message-ID:  <202404151731.43FHV0YV017477@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by bz:

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

commit ac867c20e67423e5019ab90148c387ea127eeffb
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2024-02-18 18:07:00 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2024-04-15 17:09:06 +0000

    LinuxKPI: 802.11: remove unneeded re-lookup in lkpi_80211_txq_tx_one()
    
    Given we are passed the lsta in as a function argument there is no
    need to re-lookup the sta by ni and possibly not find it.
    We know the sta and ni from the lsta and whether it is uploaded to
    firmware or not we can check directly from the local lsta flag.
    
    MFC after:      3 days
    Reviewed by:    cc
    Differential Revision: https://reviews.freebsd.org/D43965
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 76 +++++++++++++---------------
 1 file changed, 35 insertions(+), 41 deletions(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
index df3b0bc467f2..03ad38e33333 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -141,8 +141,10 @@ const struct cfg80211_ops linuxkpi_mac80211cfgops = {
 	 */
 };
 
+#if 0
 static struct lkpi_sta *lkpi_find_lsta_by_ni(struct lkpi_vif *,
     struct ieee80211_node *);
+#endif
 static void lkpi_80211_txq_task(void *, int);
 static void lkpi_80211_lhw_rxq_task(void *, int);
 static void lkpi_ieee80211_free_skb_mbuf(void *);
@@ -3583,6 +3585,7 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m)
 	struct ieee80211_tx_info *info;
 	struct ieee80211_sta *sta;
 	struct ieee80211_hdr *hdr;
+	struct lkpi_txq *ltxq;
 	void *buf;
 	uint8_t ac, tid;
 
@@ -3693,54 +3696,45 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m)
 #endif
 #endif
 
-	lsta = lkpi_find_lsta_by_ni(lvif, ni);
-	if (lsta != NULL) {
-		sta = LSTA_TO_STA(lsta);
+	sta = LSTA_TO_STA(lsta);
 #ifdef LKPI_80211_HW_CRYPTO
-		info->control.hw_key = lsta->kc;
+	info->control.hw_key = lsta->kc;
 #endif
-	} else {
-		sta = NULL;
-	}
 
 	IMPROVE();
 
-	if (sta != NULL) {
-		struct lkpi_txq *ltxq;
-
-		ltxq = NULL;
-		if (!ieee80211_is_data_present(hdr->frame_control)) {
-			if (vif->type == NL80211_IFTYPE_STATION &&
-			    lsta->added_to_drv &&
-			    sta->txq[IEEE80211_NUM_TIDS] != NULL)
-				ltxq = TXQ_TO_LTXQ(sta->txq[IEEE80211_NUM_TIDS]);
-		} else if (lsta->added_to_drv &&
-		    sta->txq[skb->priority] != NULL) {
-			ltxq = TXQ_TO_LTXQ(sta->txq[skb->priority]);
-		}
-		if (ltxq == NULL)
-			goto ops_tx;
+	ltxq = NULL;
+	if (!ieee80211_is_data_present(hdr->frame_control)) {
+		if (vif->type == NL80211_IFTYPE_STATION &&
+		    lsta->added_to_drv &&
+		    sta->txq[IEEE80211_NUM_TIDS] != NULL)
+			ltxq = TXQ_TO_LTXQ(sta->txq[IEEE80211_NUM_TIDS]);
+	} else if (lsta->added_to_drv &&
+	    sta->txq[skb->priority] != NULL) {
+		ltxq = TXQ_TO_LTXQ(sta->txq[skb->priority]);
+	}
+	if (ltxq == NULL)
+		goto ops_tx;
 
-		KASSERT(ltxq != NULL, ("%s: lsta %p sta %p m %p skb %p "
-		    "ltxq %p != NULL\n", __func__, lsta, sta, m, skb, ltxq));
+	KASSERT(ltxq != NULL, ("%s: lsta %p sta %p m %p skb %p "
+	    "ltxq %p != NULL\n", __func__, lsta, sta, m, skb, ltxq));
 
-		LKPI_80211_LTXQ_LOCK(ltxq);
-		skb_queue_tail(&ltxq->skbq, skb);
+	LKPI_80211_LTXQ_LOCK(ltxq);
+	skb_queue_tail(&ltxq->skbq, skb);
 #ifdef LINUXKPI_DEBUG_80211
-		if (linuxkpi_debug_80211 & D80211_TRACE_TX)
-			printf("%s:%d mo_wake_tx_queue :: %d %u lsta %p sta %p "
-			    "ni %p %6D skb %p lxtq %p { qlen %u, ac %d tid %u } "
-			    "WAKE_TX_Q ac %d prio %u qmap %u\n",
-			    __func__, __LINE__,
-			    curthread->td_tid, (unsigned int)ticks,
-			    lsta, sta, ni, ni->ni_macaddr, ":", skb, ltxq,
-			    skb_queue_len(&ltxq->skbq), ltxq->txq.ac,
-			    ltxq->txq.tid, ac, skb->priority, skb->qmap);
+	if (linuxkpi_debug_80211 & D80211_TRACE_TX)
+		printf("%s:%d mo_wake_tx_queue :: %d %u lsta %p sta %p "
+		    "ni %p %6D skb %p lxtq %p { qlen %u, ac %d tid %u } "
+		    "WAKE_TX_Q ac %d prio %u qmap %u\n",
+		    __func__, __LINE__,
+		    curthread->td_tid, (unsigned int)ticks,
+		    lsta, sta, ni, ni->ni_macaddr, ":", skb, ltxq,
+		    skb_queue_len(&ltxq->skbq), ltxq->txq.ac,
+		    ltxq->txq.tid, ac, skb->priority, skb->qmap);
 #endif
-		LKPI_80211_LTXQ_UNLOCK(ltxq);
-		lkpi_80211_mo_wake_tx_queue(hw, &ltxq->txq);
-		return;
-	}
+	LKPI_80211_LTXQ_UNLOCK(ltxq);
+	lkpi_80211_mo_wake_tx_queue(hw, &ltxq->txq);
+	return;
 
 ops_tx:
 #ifdef LINUXKPI_DEBUG_80211
@@ -3752,9 +3746,7 @@ ops_tx:
 #endif
 	memset(&control, 0, sizeof(control));
 	control.sta = sta;
-
 	lkpi_80211_mo_tx(hw, &control, skb);
-	return;
 }
 
 static void
@@ -5224,6 +5216,7 @@ linuxkpi_ieee80211_frequency_to_channel(uint32_t freq, uint32_t flags __unused)
 	return (ieee80211_mhz2ieee(freq, 0));
 }
 
+#if 0
 static struct lkpi_sta *
 lkpi_find_lsta_by_ni(struct lkpi_vif *lvif, struct ieee80211_node *ni)
 {
@@ -5240,6 +5233,7 @@ lkpi_find_lsta_by_ni(struct lkpi_vif *lvif, struct ieee80211_node *ni)
 
 	return (NULL);
 }
+#endif
 
 struct ieee80211_sta *
 linuxkpi_ieee80211_find_sta(struct ieee80211_vif *vif, const u8 *peer)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202404151731.43FHV0YV017477>