aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2023-10-02 14:30:46 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2023-11-30 00:36:58 +0000
commita8c36fd7a3e8af322bdb06886e40a79d1a614ac6 (patch)
treed6267745f1c21e4c43e05daef67570e5c3b16a1a
parent7019af03949f689cab24bc2cbded5ce4be28f90e (diff)
downloadsrc-a8c36fd7a3e8af322bdb06886e40a79d1a614ac6.tar.gz
src-a8c36fd7a3e8af322bdb06886e40a79d1a614ac6.zip
net80211: remove ieee80211_unref_node()
ieee80211_unref_node() was only used in two error cases in ieee80211_send_nulldata(). There we do not need to guard against ni pointer reuse after decrementing the refcount of the ni as we only update the stats and return. Update the man page and remove the link for the now gone function. Note: the last uses of the function were removed in 493d6255434ce. Sponsored by: The FreeBSD Foundation Reviewed by: adrian, emaste Differential Revision: https://reviews.freebsd.org/D42035 (cherry picked from commit 1137943b1c5b225e30b82350ff7fb12c258ea90f)
-rw-r--r--ObsoleteFiles.inc3
-rw-r--r--share/man/man9/Makefile3
-rw-r--r--share/man/man9/ieee80211_node.915
-rw-r--r--sys/net80211/ieee80211_node.h7
-rw-r--r--sys/net80211/ieee80211_output.c4
5 files changed, 10 insertions, 22 deletions
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 32a044706e51..49ba0898132e 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -54,6 +54,9 @@
# 20231006: rename tcp6_v4unmapped_bind_test
OLD_FILES+=usr/tests/sys/netinet/tcp6_v4unmapped_bind_test
+# 20231005: Remove man page link for now gone net80211 function.
+OLD_FILES+=usr/share/man/man9/ieee80211_unref_node.9.gz
+
# 20231013: Man pages renamed to match the actual functions
OLD_FILES+=usr/share/man/man9/cr_seeothergids.9.gz
OLD_FILES+=usr/share/man/man9/cr_seeotheruids.9.gz
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index 2122f8d6ea8c..c82ce254f681 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -1212,8 +1212,7 @@ MLINKS+=ieee80211_node.9 ieee80211_dump_node.9 \
ieee80211_node.9 ieee80211_find_rxnode_withkey.9 \
ieee80211_node.9 ieee80211_free_node.9 \
ieee80211_node.9 ieee80211_iterate_nodes.9 \
- ieee80211_node.9 ieee80211_ref_node.9 \
- ieee80211_node.9 ieee80211_unref_node.9
+ ieee80211_node.9 ieee80211_ref_node.9
MLINKS+=ieee80211_output.9 ieee80211_process_callback.9 \
ieee80211_output.9 M_SEQNO_GET.9 \
ieee80211_output.9 M_WME_GETAC.9
diff --git a/share/man/man9/ieee80211_node.9 b/share/man/man9/ieee80211_node.9
index 8340b4762b67..6dd492e3b33d 100644
--- a/share/man/man9/ieee80211_node.9
+++ b/share/man/man9/ieee80211_node.9
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 28, 2010
+.Dd October 2, 2023
.Dt IEEE80211_NODE 9
.Os
.Sh NAME
@@ -50,9 +50,6 @@
.Fn ieee80211_ref_node "struct ieee80211_node *"
.\"
.Ft void
-.Fn ieee80211_unref_node "struct ieee80211_node *"
-.\"
-.Ft void
.Fn ieee80211_free_node "struct ieee80211_node *"
.\"
.Ft void
@@ -106,14 +103,10 @@ Routines that lookup a table entry return a
(i.e. a pointer to a table entry with the reference count incremented).
The
.Fn ieee80211_ref_node
-and
-.Fn ieee80211_unref_node
-calls explicitly increment/decrement the reference count of a node,
-but are rarely used.
-Instead most callers use
+call explicitly increments the reference count of a node.
.Fn ieee80211_free_node
-to release a reference and, if the count goes to zero, reclaim the
-table entry.
+decrements the reference count of a node and if the count goes to zero
+reclaims the table entry.
.Pp
The station table and its entries are exposed to drivers in several ways.
Each frame transmitted to a station includes a reference to the
diff --git a/sys/net80211/ieee80211_node.h b/sys/net80211/ieee80211_node.h
index 67ad4a7c44f6..954e8e03563f 100644
--- a/sys/net80211/ieee80211_node.h
+++ b/sys/net80211/ieee80211_node.h
@@ -319,13 +319,6 @@ MALLOC_DECLARE(M_80211_NODE_IE);
#define IEEE80211_RSSI_GET(x) \
IEEE80211_RSSI_EP_RND(x, IEEE80211_RSSI_EP_MULTIPLIER)
-static __inline void
-ieee80211_unref_node(struct ieee80211_node **ni)
-{
- ieee80211_node_decref(*ni);
- *ni = NULL; /* guard against use */
-}
-
void ieee80211_node_attach(struct ieee80211com *);
void ieee80211_node_lateattach(struct ieee80211com *);
void ieee80211_node_detach(struct ieee80211com *);
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c
index 6fc4a1567d8e..a5fad2462598 100644
--- a/sys/net80211/ieee80211_output.c
+++ b/sys/net80211/ieee80211_output.c
@@ -1104,7 +1104,7 @@ ieee80211_send_nulldata(struct ieee80211_node *ni)
if (vap->iv_state == IEEE80211_S_CAC) {
IEEE80211_NOTE(vap, IEEE80211_MSG_OUTPUT | IEEE80211_MSG_DOTH,
ni, "block %s frame in CAC state", "null data");
- ieee80211_unref_node(&ni);
+ ieee80211_node_decref(ni);
vap->iv_stats.is_tx_badstate++;
return EIO; /* XXX */
}
@@ -1122,7 +1122,7 @@ ieee80211_send_nulldata(struct ieee80211_node *ni)
m = ieee80211_getmgtframe(&frm, ic->ic_headroom + hdrlen, 0);
if (m == NULL) {
/* XXX debug msg */
- ieee80211_unref_node(&ni);
+ ieee80211_node_decref(ni);
vap->iv_stats.is_tx_nobuf++;
return ENOMEM;
}