Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Dec 2008 18:06:59 GMT
From:      Andrew Thompson <thompsa@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 153962 for review
Message-ID:  <200812021806.mB2I6xHY093141@repoman.freebsd.org>

index | next in thread | raw e-mail

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

Change 153962 by thompsa@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:


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812021806.mB2I6xHY093141>