PERFORCE change 153962 for review

Andrew Thompson thompsa at FreeBSD.org
Tue Dec 2 10:07:00 PST 2008


http://perforce.freebsd.org/chv.cgi?CH=153962

Change 153962 by thompsa at thompsa_burger on 2008/12/02 18:06:24

	If the parent up/down task was queued then sync with it before
	returning from the vap ioctl. This means that the parent interface
	_should_ be up before we return to userland, it does not depend on the
	parent init succeeding, just that it was run.
	
	This fixes wpa_supplicant with ndis as it fires passthrough OID ioctls
	as soon as the vap is up yet the parent may still be down.

Affected files ...

.. //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#70 edit

Differences ...

==== //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#70 (text+ko) ====

@@ -42,6 +42,7 @@
 #include <sys/socket.h>
 #include <sys/sockio.h>
 #include <sys/systm.h>
+#include <sys/taskqueue.h>
  
 #include <net/if.h>
 #include <net/if_dl.h>
@@ -3213,6 +3214,8 @@
 			ieee80211_stop_locked(vap);
 		}
 		IEEE80211_UNLOCK(ic);
+		/* Wait for parent ioctl handler if it was queued */
+		taskqueue_drain(taskqueue_thread, &ic->ic_parent_task);
 		break;
 	case SIOCADDMULTI:
 	case SIOCDELMULTI:


More information about the p4-projects mailing list