Re: ipw(4) freeze CURRENT

From: Lukas Ertl <le_at_freebsd.org>
Date: Sun, 18 Mar 2007 12:06:59 +0100
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/

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
_at__at_ -1065,6 +1065,9 _at__at_
 		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 */
_at__at_ -1073,6 +1076,8 _at__at_
 	/* 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);
 }
 
Received on Sun Mar 18 2007 - 10:21:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:06 UTC