aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2023-10-02 20:20:14 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2023-10-05 14:56:02 +0000
commit2188852196151e5f04533eaa928a7ad0896e4bd6 (patch)
tree1fc9174f0d7a061ba8f32c99f987e9b095871976 /sys/net80211
parent0d2cb6a6ecde3b271ede59d77801cb43a8804688 (diff)
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_node.c14
-rw-r--r--sys/net80211/ieee80211_node.h11
2 files changed, 18 insertions, 7 deletions
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
index b7cdc5090c96..88c8ab4eff1c 100644
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -2056,6 +2056,20 @@ _ieee80211_find_txnode(struct ieee80211vap *vap,
return ni;
}
+struct ieee80211_node *
+_ieee80211_ref_node(struct ieee80211_node *ni,
+ const char *func __debrefcnt_used, int line __debrefcnt_used)
+{
+
+#ifdef IEEE80211_DEBUG_REFCNT
+ IEEE80211_DPRINTF(ni->ni_vap, IEEE80211_MSG_NODE,
+ "%s (%s:%u) %p<%s> refcnt %d\n", __func__, func, line, ni,
+ ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni)+1);
+#endif
+ ieee80211_node_incref(ni);
+ return (ni);
+}
+
static void
__ieee80211_free_node(struct ieee80211_node *ni)
{
diff --git a/sys/net80211/ieee80211_node.h b/sys/net80211/ieee80211_node.h
index 685df28ed519..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 struct ieee80211_node *
-ieee80211_ref_node(struct ieee80211_node *ni)
-{
- ieee80211_node_incref(ni);
- return ni;
-}
-
void ieee80211_node_attach(struct ieee80211com *);
void ieee80211_node_lateattach(struct ieee80211com *);
void ieee80211_node_detach(struct ieee80211com *);
@@ -397,6 +390,8 @@ struct ieee80211_node *ieee80211_node_create_wds(struct ieee80211vap *,
struct ieee80211_channel *);
/* These functions are taking __func__, __LINE__ for IEEE80211_DEBUG_REFCNT */
+struct ieee80211_node *_ieee80211_ref_node(struct ieee80211_node *,
+ const char *func, int line);
void _ieee80211_free_node(struct ieee80211_node *,
const char *func, int line);
struct ieee80211_node *_ieee80211_find_node_locked(
@@ -426,6 +421,8 @@ struct ieee80211_node *_ieee80211_find_rxnode_withkey(
struct ieee80211_node *_ieee80211_find_txnode(struct ieee80211vap *,
const uint8_t macaddr[IEEE80211_ADDR_LEN],
const char *func, int line);
+#define ieee80211_ref_node(ni) \
+ _ieee80211_ref_node(ni, __func__, __LINE__)
#define ieee80211_free_node(ni) \
_ieee80211_free_node(ni, __func__, __LINE__)
#define ieee80211_find_node_locked(nt, mac) \