X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/c0c6a90c76dd4d98aa44e5b1b358dd87b145516e..e3ec0c6b41c4ae7cff0e662b2396dee2c66a5f44:/package/madwifi/patches/441-fix_ibss_node_handling.patch diff --git a/package/madwifi/patches/441-fix_ibss_node_handling.patch b/package/madwifi/patches/441-fix_ibss_node_handling.patch index 13f15fb72..1089f32f3 100644 --- a/package/madwifi/patches/441-fix_ibss_node_handling.patch +++ b/package/madwifi/patches/441-fix_ibss_node_handling.patch @@ -44,7 +44,7 @@ if (dir != IEEE80211_FC1_DIR_NODS) { IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY, wh, "data", "invalid dir 0x%x", dir); -@@ -3548,6 +3553,11 @@ ieee80211_recv_mgmt(struct ieee80211vap +@@ -3552,6 +3557,11 @@ ieee80211_recv_mgmt(struct ieee80211vap } else if (vap->iv_opmode == IEEE80211_M_WDS) { found = 1; ni = ni_or_null = vap->iv_wdsnode; @@ -56,7 +56,7 @@ } IEEE80211_UNLOCK_IRQ(vap->iv_ic); -@@ -3672,19 +3682,8 @@ ieee80211_recv_mgmt(struct ieee80211vap +@@ -3676,19 +3686,8 @@ ieee80211_recv_mgmt(struct ieee80211vap vap->iv_stats.is_rx_ssidmismatch++; /*XXX*/ return; } @@ -78,3 +78,13 @@ if (ni == NULL) return; allocbs = 1; +--- a/net80211/ieee80211_node.c ++++ b/net80211/ieee80211_node.c +@@ -601,6 +601,7 @@ ieee80211_ibss_merge(struct ieee80211_no + ic->ic_flags & IEEE80211_F_SHPREAMBLE ? "short" : "long", + ic->ic_flags & IEEE80211_F_SHSLOT ? "short" : "long", + ic->ic_flags & IEEE80211_F_USEPROT ? ", protection" : ""); ++ ieee80211_node_table_reset(&vap->iv_ic->ic_sta, vap); + return ieee80211_sta_join1(ieee80211_ref_node(ni)); + } + EXPORT_SYMBOL(ieee80211_ibss_merge);