diff --git a/package/madwifi/patches/359-disable_reassoc.patch b/package/madwifi/patches/359-disable_reassoc.patch new file mode 100644 index 000000000..723424f1b --- /dev/null +++ b/package/madwifi/patches/359-disable_reassoc.patch @@ -0,0 +1,31 @@ +Add a preliminary fix for the reassoc check, but disable reassoc entirely for now +until we've figured out why it fails frequently. + +Signed-off-by: Felix Fietkau + +--- a/net80211/ieee80211_node.c ++++ b/net80211/ieee80211_node.c +@@ -599,10 +599,9 @@ + EXPORT_SYMBOL(ieee80211_ibss_merge); + + static __inline int +-ssid_equal(const struct ieee80211_node *a, const struct ieee80211_node *b) ++bssid_equal(const struct ieee80211_node *a, const struct ieee80211_node *b) + { +- return (a->ni_esslen == b->ni_esslen && +- memcmp(a->ni_essid, b->ni_essid, a->ni_esslen) == 0); ++ return (memcmp(a->ni_bssid, b->ni_bssid, IEEE80211_ADDR_LEN) == 0); + } + + /* +@@ -634,8 +633,8 @@ + * Check if old+new node have the same ssid in which + * case we can reassociate when operating in sta mode. + */ +- canreassoc = ((obss != NULL) && +- (vap->iv_state == IEEE80211_S_RUN) && ssid_equal(obss, selbs)); ++ canreassoc = 0; /* ((obss != NULL) && ++ (vap->iv_state == IEEE80211_S_RUN) && bssid_equal(obss, selbs)); */ + vap->iv_bss = selbs; + IEEE80211_ADDR_COPY(vap->iv_bssid, selbs->ni_bssid); + if (obss != NULL)