summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2006-12-11 00:37:12 +0000
committersam <sam@FreeBSD.org>2006-12-11 00:37:12 +0000
commitd3f80bbcba6fe478db44078995d655180d7d4b0f (patch)
tree7fa980379faea6c9c95742c227aa12738ebe4f58 /sys
parent559b88d1c8f6977d912401da0aec406fd7ba892f (diff)
downloadFreeBSD-src-d3f80bbcba6fe478db44078995d655180d7d4b0f.zip
FreeBSD-src-d3f80bbcba6fe478db44078995d655180d7d4b0f.tar.gz
drop softc lock when passing rx frames up the stack
MFC after: 1 month
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/wi/if_wi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/wi/if_wi.c b/sys/dev/wi/if_wi.c
index 872c896..9bdcea7 100644
--- a/sys/dev/wi/if_wi.c
+++ b/sys/dev/wi/if_wi.c
@@ -1655,6 +1655,7 @@ wi_rx_intr(struct wi_softc *sc)
if (ic->ic_opmode == IEEE80211_M_IBSS && dir == IEEE80211_FC1_DIR_NODS)
wi_sync_bssid(sc, wh->i_addr3);
+ WI_UNLOCK(sc);
/*
* Locate the node for sender, track state, and
* then pass this node (referenced) up to the 802.11
@@ -1671,6 +1672,8 @@ wi_rx_intr(struct wi_softc *sc)
* so use free_node here instead of unref_node.
*/
ieee80211_free_node(ni);
+
+ WI_LOCK(sc);
}
static void
OpenPOWER on IntegriCloud