madwifi: add back a missing part of the mbss vap refactoring
[openwrt/svn-archive/archive.git] / package / madwifi / patches / 393-mbss_vap_auth.patch
index 802f795d3bfbdfd4610ec63885492c6088458175..c887336fb681c4c568acb2b5b06ade5d3079ad78 100644 (file)
        IEEE80211_NODE_TABLE_UNLOCK_IRQ(nt);
  
        if (ni == NULL) {
-@@ -1961,13 +2012,29 @@ remove_worse_nodes(void *arg, struct iee
+@@ -1961,13 +2012,32 @@ remove_worse_nodes(void *arg, struct iee
                }
  }
  
 +      if (ni->ni_vap == rni->ni_vap)
 +              return;
 +
++      if (!IEEE80211_ADDR_EQ(rni->ni_macaddr, ni->ni_macaddr))
++              return;
++
 +      ieee80211_node_leave(ni);
 +}
 +
  
 --- a/ath/if_ath.c
 +++ b/ath/if_ath.c
-@@ -6577,9 +6577,8 @@ ath_recv_mgmt(struct ieee80211vap * vap,
+@@ -6578,9 +6578,8 @@ ath_recv_mgmt(struct ieee80211vap * vap,
  
        sc->sc_recv_mgmt(vap, ni_or_null, skb, subtype, rssi, rtsf);
  
                 (const struct ieee80211_frame_min *)skb->data);
        if (ni == NULL) {
                DPRINTF(sc, ATH_DEBUG_BEACON, "Dropping; node unknown.\n");
-@@ -6734,7 +6733,9 @@ ath_rx_poll(struct net_device *dev, int 
+@@ -6735,7 +6734,9 @@ ath_rx_poll(struct net_device *dev, int 
        struct ath_desc *ds;
        struct ath_rx_status *rs;
        struct sk_buff *skb = NULL;
        unsigned int len;
        int type;
        u_int phyerr;
-@@ -6889,12 +6890,15 @@ rx_accept:
+@@ -6890,12 +6891,15 @@ rx_accept:
                skb_trim(skb, skb->len - IEEE80211_CRC_LEN);
  
                if (mic_fail) {
  
                        if (ni && ni->ni_table) {
                                ieee80211_check_mic(ni, skb);
-@@ -6956,11 +6960,24 @@ drop_micfail:
+@@ -6957,11 +6961,24 @@ drop_micfail:
                 * for its use.  If the sender is unknown spam the
                 * frame; it'll be dropped where it's not wanted.
                 */
                        ATH_RSSI_LPF(ATH_NODE(ni)->an_avgrssi, rs->rs_rssi);
                        type = ieee80211_input(ni->ni_vap, ni, skb, rs->rs_rssi, bf->bf_tsf);
                        ieee80211_unref_node(&ni);
-@@ -6969,24 +6986,35 @@ drop_micfail:
+@@ -6970,24 +6987,35 @@ drop_micfail:
                         * No key index or no entry, do a lookup and
                         * add the node to the mapping table if possible.
                         */