PERFORCE change 81809 for review
Sam Leffler
sam at FreeBSD.org
Wed Aug 10 22:46:46 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=81809
Change 81809 by sam at sam_ebb on 2005/08/10 22:37:39
Bandaid deadlock: on tx timeout we're in the callout callback
when we clock the state machine, but this results in a call
to callout_drain which blocks because the callout is active.
Workaround for now is to use callout_stop which won't block
but this potentially leaves us open to a race.
Affected files ...
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#36 edit
Differences ...
==== //depot/projects/wifi/sys/net80211/ieee80211_proto.c#36 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_proto.c,v 1.22 2005/07/22 21:11:26 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_proto.c,v 1.23 2005/08/10 16:22:29 sam Exp $");
/*
* IEEE 802.11 protocol support.
@@ -949,7 +949,7 @@
IEEE80211_DPRINTF(ic, IEEE80211_MSG_STATE, "%s: %s -> %s\n", __func__,
ieee80211_state_name[ostate], ieee80211_state_name[nstate]);
ic->ic_state = nstate; /* state transition */
- callout_drain(&ic->ic_mgtsend);
+ callout_stop(&ic->ic_mgtsend); /* XXX callout_drain */
if (ostate != IEEE80211_S_SCAN)
ieee80211_cancel_scan(ic); /* background scan */
ni = ic->ic_bss; /* NB: no reference held */
More information about the p4-projects
mailing list