From 29dbf43bdb18ecc6b4e3df180114ef03e67a22e7 Mon Sep 17 00:00:00 2001 From: nbd Date: Fri, 25 Jan 2008 23:09:13 +0000 Subject: add some random madwifi fixes git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10260 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/madwifi/patches/312-erpupdate.patch | 73 +++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 package/madwifi/patches/312-erpupdate.patch (limited to 'package/madwifi/patches/312-erpupdate.patch') diff --git a/package/madwifi/patches/312-erpupdate.patch b/package/madwifi/patches/312-erpupdate.patch new file mode 100644 index 000000000..8b8b3c7c2 --- /dev/null +++ b/package/madwifi/patches/312-erpupdate.patch @@ -0,0 +1,73 @@ +Index: madwifi-dfs-r3053/net80211/ieee80211_beacon.c +=================================================================== +--- madwifi-dfs-r3053.orig/net80211/ieee80211_beacon.c 2008-01-10 10:51:31.406580318 +0100 ++++ madwifi-dfs-r3053/net80211/ieee80211_beacon.c 2008-01-10 10:56:54.040966203 +0100 +@@ -538,9 +538,9 @@ + vap->iv_flags &= ~IEEE80211_F_XRUPDATE; + } + #endif +- if ((ic->ic_flags_ext & IEEE80211_FEXT_ERPUPDATE) && (bo->bo_erp != NULL)) { ++ if ((vap->iv_flags_ext & IEEE80211_FEXT_ERPUPDATE) && (bo->bo_erp != NULL)) { + (void) ieee80211_add_erp(bo->bo_erp, ic); +- ic->ic_flags_ext &= ~IEEE80211_FEXT_ERPUPDATE; ++ vap->iv_flags_ext &= ~IEEE80211_FEXT_ERPUPDATE; + } + } + /* if it is a mode change beacon for dynamic turbo case */ +Index: madwifi-dfs-r3053/net80211/ieee80211_input.c +=================================================================== +--- madwifi-dfs-r3053.orig/net80211/ieee80211_input.c 2008-01-10 10:51:31.558588981 +0100 ++++ madwifi-dfs-r3053/net80211/ieee80211_input.c 2008-01-10 10:55:51.565405916 +0100 +@@ -3315,9 +3315,12 @@ + /* Assume no ERP IE == 11b AP */ + if ((!has_erp || (has_erp && (scan.erp & IEEE80211_ERP_NON_ERP_PRESENT))) && + !(ic->ic_flags & IEEE80211_F_USEPROT)) { ++ struct ieee80211vap *tmpvap; + + ic->ic_flags |= IEEE80211_F_USEPROT; +- ic->ic_flags_ext |= IEEE80211_FEXT_ERPUPDATE; ++ TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) { ++ tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE; ++ } + } + } + +Index: madwifi-dfs-r3053/net80211/ieee80211_node.c +=================================================================== +--- madwifi-dfs-r3053.orig/net80211/ieee80211_node.c 2008-01-10 10:51:31.622592626 +0100 ++++ madwifi-dfs-r3053/net80211/ieee80211_node.c 2008-01-10 10:54:58.398376106 +0100 +@@ -1998,8 +1998,12 @@ + } + + /* Update ERP element if this is first non ERP station */ +- if (ic->ic_nonerpsta == 1) +- ic->ic_flags_ext |= IEEE80211_FEXT_ERPUPDATE; ++ if (ic->ic_nonerpsta == 1) { ++ struct ieee80211vap *tmpvap; ++ TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) { ++ tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE; ++ } ++ } + } else + ni->ni_flags |= IEEE80211_NODE_ERP; + } +@@ -2202,6 +2206,8 @@ + IEEE80211_NOTE(vap, IEEE80211_MSG_ASSOC, ni, + "non-ERP station leaves, count now %d", ic->ic_nonerpsta); + if (ic->ic_nonerpsta == 0) { ++ struct ieee80211vap *tmpvap; ++ + IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC, + "%s: disable use of protection\n", __func__); + ic->ic_flags &= ~IEEE80211_F_USEPROT; +@@ -2213,7 +2219,9 @@ + ic->ic_flags |= IEEE80211_F_SHPREAMBLE; + ic->ic_flags &= ~IEEE80211_F_USEBARKER; + } +- ic->ic_flags_ext |= IEEE80211_FEXT_ERPUPDATE; ++ TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) { ++ tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE; ++ } + } + } + } -- cgit v1.2.3