madwifi: fix another ibss crash (#5935)
authorFelix Fietkau <nbd@openwrt.org>
Wed, 14 Oct 2009 21:15:45 +0000 (21:15 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 14 Oct 2009 21:15:45 +0000 (21:15 +0000)
SVN-Revision: 18048

package/madwifi/patches/451-ibss_race_fix.patch

index c63901d9e89a5d20035aa9a028c6166d1eb62e57..662f454eff006d33c3f7b3e8da363a6a04003b52 100644 (file)
                                ni_or_null = ieee80211_find_node(&ic->ic_sta, wh->i_addr2);
                                if (ni_or_null)
                                        ni = ni_or_null;
+--- a/net80211/ieee80211_node.c
++++ b/net80211/ieee80211_node.c
+@@ -317,16 +317,10 @@ ieee80211_create_ibss(struct ieee80211va
+       /* Check to see if we already have a node for this mac
+        * NB: we gain a node reference here
+        */
+-      ni = ieee80211_find_txnode(vap, vap->iv_myaddr);
++      ni = ieee80211_alloc_node(vap, vap->iv_myaddr);
+       if (ni == NULL) {
+-              ni = ieee80211_alloc_node_table(vap, vap->iv_myaddr);
+-              IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC,
+-                                "%s: ni:%p allocated for " MAC_FMT "\n",
+-                                __func__, ni, MAC_ADDR(vap->iv_myaddr));
+-              if (ni == NULL) {
+-                      /* XXX recovery? */
+-                      return;
+-              }
++              /* XXX recovery? */
++              return;
+       }
+       IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_myaddr);