aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-05-07 11:32:47 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-05-07 11:32:47 +0000
commit743d7804c8499501016af01feddc8cedd1df71db (patch)
tree538c587103f3e820084ebafc47a83fca965178f1 /package
parent122725c5d3b78f7bf4b67a2a99f87d882ea050a8 (diff)
downloadupstream-743d7804c8499501016af01feddc8cedd1df71db.tar.gz
upstream-743d7804c8499501016af01feddc8cedd1df71db.tar.bz2
upstream-743d7804c8499501016af01feddc8cedd1df71db.zip
madwifi: fix run-time changing of iwpriv settings (thx, brainslayer)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15664 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/madwifi/patches/422-confchange_reset.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/package/madwifi/patches/422-confchange_reset.patch b/package/madwifi/patches/422-confchange_reset.patch
new file mode 100644
index 0000000000..33040ae0dd
--- /dev/null
+++ b/package/madwifi/patches/422-confchange_reset.patch
@@ -0,0 +1,31 @@
+--- a/net80211/ieee80211_wireless.c
++++ b/net80211/ieee80211_wireless.c
+@@ -70,7 +70,8 @@
+ (((_dev)->flags & (IFF_RUNNING|IFF_UP)) == (IFF_RUNNING|IFF_UP))
+ #define IS_UP_AUTO(_vap) \
+ (IS_UP((_vap)->iv_dev) && \
+- (_vap)->iv_ic->ic_roaming == IEEE80211_ROAMING_AUTO)
++ (((_vap)->iv_opmode == IEEE80211_M_HOSTAP) || \
++ (_vap)->iv_ic->ic_roaming == IEEE80211_ROAMING_AUTO))
+ #define RESCAN 1
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
+@@ -283,7 +284,7 @@ ieee80211_ioctl_siwencode(struct net_dev
+ vap->iv_flags &= ~IEEE80211_F_DROPUNENC;
+ }
+ }
+- if ((error == 0) && IS_UP(vap->iv_dev)) {
++ if ((error == 0) && IS_UP_AUTO(vap) && wepchange) {
+ /*
+ * Device is up and running; we must kick it to
+ * effect the change. If we're enabling/disabling
+@@ -291,8 +292,7 @@ ieee80211_ioctl_siwencode(struct net_dev
+ * so the 802.11 state machine is reset. Otherwise
+ * the key state should have been updated above.
+ */
+- if (wepchange && IS_UP_AUTO(vap))
+- ieee80211_new_state(vap, IEEE80211_S_SCAN, 0);
++ ieee80211_new_state(vap, IEEE80211_S_SCAN, 0);
+ }
+ #ifdef ATH_SUPERG_XR
+ /* set the same params on the xr vap device if exists */