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.

Sponsored by:	The FreeBSD Foundation
X-MFC:		never
Reviewed by:	adrian, emaste
Differential Revision: https://reviews.freebsd.org/D42035
This commit is contained in:
Bjoern A. Zeeb 2023-10-02 14:30:46 +00:00
parent 7d48224073
commit 1137943b1c
5 changed files with 10 additions and 22 deletions

View File

@ -51,6 +51,9 @@
# xargs -n1 | sort | uniq -d;
# done
# 20231005: Remove man page link for now gone net80211 function.
OLD_FILES+=usr/share/man/man9/ieee80211_unref_node.9.gz
# 20231005: bsdconfig remove support for floppy and ftp
OLD_FILES+=usr/share/bsdconfig/media/floppy.subr
OLD_FILES+=usr/share/bsdconfig/media/ftp.subr

View File

@ -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

View File

@ -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

View File

@ -326,13 +326,6 @@ ieee80211_ref_node(struct ieee80211_node *ni)
return ni;
}
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 *);

View File

@ -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;
}