From owner-svn-src-all@FreeBSD.ORG Sun Jan 25 07:31:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 70246106566C; Sun, 25 Jan 2009 07:31:51 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5E7FE8FC16; Sun, 25 Jan 2009 07:31:51 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0P7VpEq009818; Sun, 25 Jan 2009 07:31:51 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0P7VphH009817; Sun, 25 Jan 2009 07:31:51 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200901250731.n0P7VphH009817@svn.freebsd.org> From: Andrew Thompson Date: Sun, 25 Jan 2009 07:31:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187678 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Jan 2009 07:31:51 -0000 Author: thompsa Date: Sun Jan 25 07:31:51 2009 New Revision: 187678 URL: http://svn.freebsd.org/changeset/base/187678 Log: 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 hopefully 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 and USB where the parent interfaces can be slow to init. Modified: head/sys/net80211/ieee80211_ioctl.c Modified: head/sys/net80211/ieee80211_ioctl.c ============================================================================== --- head/sys/net80211/ieee80211_ioctl.c Sun Jan 25 07:24:34 2009 (r187677) +++ head/sys/net80211/ieee80211_ioctl.c Sun Jan 25 07:31:51 2009 (r187678) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -3233,6 +3234,8 @@ ieee80211_ioctl(struct ifnet *ifp, u_lon 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: