summaryrefslogtreecommitdiff
path: root/package/madwifi/patches/371-wds_sta_separation.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-09-23 17:28:19 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-09-23 17:28:19 +0000
commitdeb3f959967461c250f5f1d4b6bbcb63911a4b51 (patch)
treeb7ff136c8de38e28c7e6bf9534dde9a4dd4d2d7d /package/madwifi/patches/371-wds_sta_separation.patch
parent216c6cd8a9cc2afff60d833dd462c3801a3e1bb2 (diff)
downloadmtk-20170518-deb3f959967461c250f5f1d4b6bbcb63911a4b51.zip
mtk-20170518-deb3f959967461c250f5f1d4b6bbcb63911a4b51.tar.gz
mtk-20170518-deb3f959967461c250f5f1d4b6bbcb63911a4b51.tar.bz2
madwifi: fix locking issues in state machine changes
SVN-Revision: 12670
Diffstat (limited to 'package/madwifi/patches/371-wds_sta_separation.patch')
-rw-r--r--package/madwifi/patches/371-wds_sta_separation.patch31
1 files changed, 0 insertions, 31 deletions
diff --git a/package/madwifi/patches/371-wds_sta_separation.patch b/package/madwifi/patches/371-wds_sta_separation.patch
index 9178594..a37ebd4 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)