mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 18:19:02 +00:00
32 lines
1.1 KiB
Diff
32 lines
1.1 KiB
Diff
|
--- 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 */
|