1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00

madwifi: fix a wds related race condition

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17578 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd
2009-09-14 10:45:34 +00:00
parent 3713427395
commit 7b5f9bb12a
12 changed files with 25 additions and 24 deletions

View File

@@ -305,7 +305,7 @@
if (skb != NULL) /* no vaps, reclaim skb */
ieee80211_dev_kfree_skb(&skb);
return type;
@@ -1146,11 +1157,9 @@ ieee80211_deliver_data(struct ieee80211_
@@ -1147,11 +1158,9 @@ ieee80211_deliver_data(struct ieee80211_
* sending it will not work; just let it be
* delivered normally.
*/
@@ -319,7 +319,7 @@
!ni1->ni_subif &&
ni1 != vap->iv_bss) {
@@ -3519,6 +3528,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
@@ -3520,6 +3529,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
(vap->iv_opmode == IEEE80211_M_WDS)) &&
(scan.capinfo & IEEE80211_CAPINFO_ESS))) {
struct ieee80211vap *avp = NULL;
@@ -327,7 +327,7 @@
int found = 0;
IEEE80211_LOCK_IRQ(vap->iv_ic);
@@ -3550,10 +3560,12 @@ ieee80211_recv_mgmt(struct ieee80211vap
@@ -3551,10 +3561,12 @@ ieee80211_recv_mgmt(struct ieee80211vap
ni->ni_associd |= 0xc000;
avp->iv_wdsnode = ieee80211_ref_node(ni);
IEEE80211_UNLOCK_IRQ(ic);
@@ -341,7 +341,7 @@
} else {
/*
* Copy data from beacon to neighbor table.
@@ -3592,6 +3604,8 @@ ieee80211_recv_mgmt(struct ieee80211vap
@@ -3593,6 +3605,8 @@ ieee80211_recv_mgmt(struct ieee80211vap
ni->ni_rssi = rssi;
ni->ni_rtsf = rtsf;
ni->ni_last_rx = jiffies;