diff options
Diffstat (limited to 'package/madwifi')
| -rw-r--r-- | package/madwifi/patches/355-eap_auth_disassoc.patch | 14 | ||||
| -rw-r--r-- | package/madwifi/patches/370-wdsvap.patch | 2 | ||||
| -rw-r--r-- | package/madwifi/patches/371-wds_sta_separation.patch | 31 | ||||
| -rw-r--r-- | package/madwifi/patches/403-changeset_r3605.patch | 4 | 
4 files changed, 8 insertions, 43 deletions
diff --git a/package/madwifi/patches/355-eap_auth_disassoc.patch b/package/madwifi/patches/355-eap_auth_disassoc.patch index 9b589649f..7774d6bdd 100644 --- a/package/madwifi/patches/355-eap_auth_disassoc.patch +++ b/package/madwifi/patches/355-eap_auth_disassoc.patch @@ -5,21 +5,17 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>  --- a/ath/if_ath.c  +++ b/ath/if_ath.c -@@ -8328,6 +8328,18 @@ +@@ -8328,6 +8328,14 @@   #endif   				if (ts->ts_status & HAL_TXERR_XRETRY) {   					sc->sc_stats.ast_tx_xretries++; -+					if (SKB_CB(bf->bf_skb)->auth_pkt && (ni->ni_vap->iv_opmode == IEEE80211_M_STA)) { -+						struct ieee80211com *ic = &sc->sc_ic; ++					if (SKB_CB(bf->bf_skb)->auth_pkt && ++						(ni->ni_vap->iv_opmode == IEEE80211_M_STA)) { ++						struct ieee80211vap *vap = ni->ni_vap;  +  +						/* if roaming is enabled, try reassociating, otherwise  +						 * disassociate and go back to the scan state */ -+						IEEE80211_VAPS_LOCK_BH(ic); -+						if (ic->ic_roaming == IEEE80211_ROAMING_AUTO) -+							ni->ni_vap->iv_newstate(ni->ni_vap, IEEE80211_S_ASSOC, 1); -+						else -+							ni->ni_vap->iv_newstate(ni->ni_vap, IEEE80211_S_SCAN, 0); -+						IEEE80211_VAPS_UNLOCK_BH(ic); ++						vap->iv_mgtsend.function(vap->iv_mgtsend.data);  +					}   					if (ni->ni_flags & IEEE80211_NODE_UAPSD_TRIG) {   						ni->ni_stats.ns_tx_eosplost++; diff --git a/package/madwifi/patches/370-wdsvap.patch b/package/madwifi/patches/370-wdsvap.patch index 05e1ca704..1cf334e7b 100644 --- a/package/madwifi/patches/370-wdsvap.patch +++ b/package/madwifi/patches/370-wdsvap.patch @@ -77,7 +77,7 @@   		rfilt |= HAL_RX_FILTER_BEACON;   	if (sc->sc_nmonvaps > 0)   		rfilt |= (HAL_RX_FILTER_CONTROL | HAL_RX_FILTER_BEACON | -@@ -9030,8 +9031,6 @@ +@@ -9026,8 +9027,6 @@   		 * set sc->beacons if we might need to restart                    * them after ath_reset. */   		if (!sc->sc_beacons && diff --git a/package/madwifi/patches/371-wds_sta_separation.patch b/package/madwifi/patches/371-wds_sta_separation.patch index 917859490..a37ebd493 100644 --- a/package/madwifi/patches/371-wds_sta_separation.patch +++ b/package/madwifi/patches/371-wds_sta_separation.patch @@ -486,25 +486,6 @@   /* Locking */   /* NB: beware, spin_is_locked() is not usefully defined for !(DEBUG || SMP)    * because spinlocks do not exist in this configuration. Instead IRQs  -@@ -167,6 +196,18 @@ - 	IEEE80211_VAPS_LOCK_ASSERT(_ic);		\ - 	spin_unlock_bh(&(_ic)->ic_vapslock);		\ - } while (0) -+#define	IEEE80211_VAPS_LOCK_IRQ(_ic) do {					\ -+	unsigned long __vlockflags;					\ -+	IEEE80211_VAPS_LOCK_CHECK(_ic);					\ -+	spin_lock_irqsave(&(_ic)->ic_vapslock, __vlockflags); -+#define	IEEE80211_VAPS_UNLOCK_IRQ(_ic)					\ -+	IEEE80211_VAPS_LOCK_ASSERT(_ic);					\ -+	spin_unlock_irqrestore(&(_ic)->ic_vapslock, __vlockflags);	\ -+} while (0) -+#define	IEEE80211_VAPS_UNLOCK_IRQ_EARLY(_ic)					\ -+	IEEE80211_VAPS_LOCK_ASSERT(_ic);					\ -+	spin_unlock_irqrestore(&(_ic)->ic_vapslock, __vlockflags); -+ -  - #if (defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)) && defined(spin_is_locked) - #define IEEE80211_VAPS_LOCK_ASSERT(_ic) \  --- a/net80211/ieee80211_proto.c  +++ b/net80211/ieee80211_proto.c  @@ -1081,6 +1081,8 @@ @@ -550,18 +531,6 @@   	ieee80211_new_state(vap, IEEE80211_S_INIT, -1);   	if (dev->flags & IFF_RUNNING) {   		dev->flags &= ~IFF_RUNNING;		/* mark us stopped */ -@@ -1342,9 +1366,9 @@ - 	struct ieee80211com *ic = vap->iv_ic; - 	int rc; -  --	IEEE80211_VAPS_LOCK_BH(ic); -+	IEEE80211_VAPS_LOCK_IRQ(ic); - 	rc = vap->iv_newstate(vap, nstate, arg); --	IEEE80211_VAPS_UNLOCK_BH(ic); -+	IEEE80211_VAPS_UNLOCK_IRQ(ic); - 	return rc; - } -   @@ -1630,6 +1654,7 @@   		 */   		if (ni->ni_authmode != IEEE80211_AUTH_8021X) diff --git a/package/madwifi/patches/403-changeset_r3605.patch b/package/madwifi/patches/403-changeset_r3605.patch index 18e377d64..48981ec13 100644 --- a/package/madwifi/patches/403-changeset_r3605.patch +++ b/package/madwifi/patches/403-changeset_r3605.patch @@ -16,7 +16,7 @@   #endif /* _ATH_COMPAT_H_ */  --- a/net80211/ieee80211_linux.h  +++ b/net80211/ieee80211_linux.h -@@ -350,13 +350,6 @@ +@@ -338,13 +338,6 @@   #define	ACL_LOCK_CHECK(_as)   #endif @@ -30,7 +30,7 @@   /*    * Per-node power-save queue definitions.  Beware of control    * flow with IEEE80211_NODE_SAVEQ_LOCK/IEEE80211_NODE_SAVEQ_UNLOCK. -@@ -400,16 +393,16 @@ +@@ -388,16 +381,16 @@   	_skb = __skb_dequeue(&(_ni)->ni_savedq);		\   	(_qlen) = skb_queue_len(&(_ni)->ni_savedq);		\   } while (0)  | 
