int found = 0;
IEEE80211_LOCK_IRQ(vap->iv_ic);
-@@ -3568,14 +3561,12 @@ ieee80211_recv_mgmt(struct ieee80211vap
+@@ -3570,14 +3563,12 @@ ieee80211_recv_mgmt(struct ieee80211vap
}
}
if (found)
- ni = ni_or_null = avp->iv_wdsnode;
+ tni = ieee80211_ref_node(avp->iv_wdsnode);
- } else if (vap->iv_opmode == IEEE80211_M_WDS) {
+ } else if ((vap->iv_opmode == IEEE80211_M_WDS) && vap->iv_wdsnode) {
found = 1;
- ni = ni_or_null = vap->iv_wdsnode;
- } else if (vap->iv_opmode == IEEE80211_M_IBSS) {
found = 1;
}
IEEE80211_UNLOCK_IRQ(vap->iv_ic);
-@@ -3583,20 +3574,21 @@ ieee80211_recv_mgmt(struct ieee80211vap
+@@ -3585,20 +3576,21 @@ ieee80211_recv_mgmt(struct ieee80211vap
if (!found)
break;
} else {
/*
* Copy data from beacon to neighbor table.
-@@ -3604,39 +3596,38 @@ ieee80211_recv_mgmt(struct ieee80211vap
+@@ -3606,39 +3598,38 @@ ieee80211_recv_mgmt(struct ieee80211vap
* ieee80211_add_neighbor(), so we just copy
* everything over to be safe.
*/
}
IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_myaddr);
-@@ -429,8 +425,8 @@ ieee80211_reset_bss(struct ieee80211vap
- __func__, ni, MAC_ADDR(vap->iv_myaddr));
- KASSERT(ni != NULL, ("unable to setup inital BSS node"));
-
-- vap->iv_bss = ieee80211_ref_node(ni);
-- KASSERT((atomic_read(&vap->iv_bss->ni_refcnt) == 3),
-+ vap->iv_bss = ni;
-+ KASSERT((atomic_read(&vap->iv_bss->ni_refcnt) == 2),
- ("wrong refcount for new node."));
-
- if (obss != NULL) {
@@ -647,7 +643,7 @@ ieee80211_sta_join1(struct ieee80211_nod
(vap->iv_state == IEEE80211_S_RUN) && bssid_equal(obss, selbs)); */
vap->iv_bss = selbs;