ipw(4) freeze CURRENT

Lukas Ertl le at freebsd.org
Sun Mar 18 11:21:37 UTC 2007


Denis Shaposhnikov wrote:
> Hi!
> 
> I think, something strange with ipw(4) on fresh CURRENT. If I use it 
> with debug.mpsafenet="1" (the default) it sometimes freeze my notebook. 
> But with debug.mpsafenet="0" it works.

Could you try the attached patch?

regards,
le

-- 
Lukas Ertl                     http://homepage.univie.ac.at/l.ertl/
le at FreeBSD.org                 http://people.freebsd.org/~le/
-------------- next part --------------
Index: if_ipw.c
===================================================================
RCS file: /usr/local/bsdcvs/src/sys/dev/ipw/if_ipw.c,v
retrieving revision 1.25
diff -u -r1.25 if_ipw.c
--- if_ipw.c	11 Mar 2007 22:40:38 -0000	1.25
+++ if_ipw.c	18 Mar 2007 11:02:20 -0000
@@ -1065,6 +1065,9 @@
 		ipw_fix_channel(ic, m);
 
 	wh = mtod(m, struct ieee80211_frame *);
+
+	mtx_unlock(&sc->sc_mtx);
+
 	ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *)wh);
 
 	/* send the frame to the 802.11 layer */
@@ -1073,6 +1076,8 @@
 	/* node is no longer needed */
 	ieee80211_free_node(ni);
 
+	mtx_lock(&sc->sc_mtx);
+
 	bus_dmamap_sync(sc->rbd_dmat, sc->rbd_map, BUS_DMASYNC_PREWRITE);
 }
 


More information about the freebsd-current mailing list