diff options
Diffstat (limited to 'package/madwifi/patches-r3776/324-reassoc.patch')
-rw-r--r-- | package/madwifi/patches-r3776/324-reassoc.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/package/madwifi/patches-r3776/324-reassoc.patch b/package/madwifi/patches-r3776/324-reassoc.patch new file mode 100644 index 0000000000..12c5b913c5 --- /dev/null +++ b/package/madwifi/patches-r3776/324-reassoc.patch @@ -0,0 +1,33 @@ +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 <nbd@openwrt.org> + +Index: madwifi-trunk-r3776/net80211/ieee80211_node.c +=================================================================== +--- madwifi-trunk-r3776.orig/net80211/ieee80211_node.c 2008-07-17 04:05:43.000000000 +0200 ++++ madwifi-trunk-r3776/net80211/ieee80211_node.c 2008-07-17 04:05:55.000000000 +0200 +@@ -561,10 +561,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); + } + + /* +@@ -596,8 +595,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) |