View | Details | Raw Unified | Return to bug 199676
Collapse All | Expand All

(-)sys/net80211/ieee80211_node.c (-1 / +9 lines)
Lines 93-98 Link Here
93
93
94
static void _ieee80211_free_node(struct ieee80211_node *);
94
static void _ieee80211_free_node(struct ieee80211_node *);
95
95
96
static void node_reclaim(struct ieee80211_node_table *nt,
97
	struct ieee80211_node *ni);
96
static void ieee80211_node_table_init(struct ieee80211com *ic,
98
static void ieee80211_node_table_init(struct ieee80211com *ic,
97
	struct ieee80211_node_table *nt, const char *name,
99
	struct ieee80211_node_table *nt, const char *name,
98
	int inact, int keymaxix);
100
	int inact, int keymaxix);
Lines 719-727 Link Here
719
		IEEE80211_ADDR_EQ(obss->ni_macaddr, selbs->ni_macaddr));
721
		IEEE80211_ADDR_EQ(obss->ni_macaddr, selbs->ni_macaddr));
720
	vap->iv_bss = selbs;		/* NB: caller assumed to bump refcnt */
722
	vap->iv_bss = selbs;		/* NB: caller assumed to bump refcnt */
721
	if (obss != NULL) {
723
	if (obss != NULL) {
724
		struct ieee80211_node_table *nt = obss->ni_table;
725
722
		copy_bss(selbs, obss);
726
		copy_bss(selbs, obss);
723
		ieee80211_node_decref(obss);	/* iv_bss reference */
727
		ieee80211_node_decref(obss);	/* iv_bss reference */
724
		ieee80211_free_node(obss);	/* station table reference */
728
729
		IEEE80211_NODE_LOCK(nt);
730
		node_reclaim(nt, obss);		/* station table reference */
731
		IEEE80211_NODE_UNLOCK(nt);
732
725
		obss = NULL;		/* NB: guard against later use */
733
		obss = NULL;		/* NB: guard against later use */
726
	}
734
	}
727
735

Return to bug 199676