Ticket #835: keyix-reset-conservative.diff
| File keyix-reset-conservative.diff, 1.1 kB (added by matt@mattb.net.nz, 6 years ago) |
|---|
-
net80211/ieee80211_node.c
old new 50 50 51 51 #include <net80211/ieee80211_var.h> 52 52 #include <net80211/if_athproto.h> 53 #include <ath/if_athvar.h> 53 54 54 55 /* 55 56 * Association id's are managed with a bit vector. … … 1470 1471 struct ieee80211vap *match) 1471 1472 { 1472 1473 struct ieee80211_node *ni, *next; 1474 u_int16_t keyix; 1473 1475 1474 1476 IEEE80211_NODE_LOCK_IRQ(nt); 1475 1477 TAILQ_FOREACH_SAFE(ni, &nt->nt_node, ni_list, next) { … … 1483 1485 if (vap->iv_aid_bitmap != NULL) 1484 1486 IEEE80211_AID_CLR(vap, ni->ni_associd); 1485 1487 } 1488 /* Remove the node from the key->node mapping if necessary */ 1489 keyix = ni->ni_ucastkey.wk_keyix; 1490 if (keyix != IEEE80211_KEYIX_NONE) { 1491 struct ath_softc *sc = ni->ni_vap->iv_ic->ic_dev->priv; 1492 if (sc->sc_keyixmap[keyix]!=NULL) { 1493 ieee80211_free_node((struct ieee80211_node *) 1494 sc->sc_keyixmap[keyix]); 1495 sc->sc_keyixmap[keyix] = NULL; 1496 } 1497 } 1486 1498 node_reclaim(nt, ni); 1487 1499 } 1488 1500 IEEE80211_NODE_UNLOCK_IRQ(nt);
