Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Apr 2016 13:01:40 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r297745 - projects/vnet/sys/net
Message-ID:  <201604091301.u39D1eCj062781@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Sat Apr  9 13:01:40 2016
New Revision: 297745
URL: https://svnweb.freebsd.org/changeset/base/297745

Log:
  Always drain the taskq on interface move/detach.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/vnet/sys/net/if.c

Modified: projects/vnet/sys/net/if.c
==============================================================================
--- projects/vnet/sys/net/if.c	Sat Apr  9 12:17:31 2016	(r297744)
+++ projects/vnet/sys/net/if.c	Sat Apr  9 13:01:40 2016	(r297745)
@@ -959,6 +959,11 @@ if_detach_internal(struct ifnet *ifp, in
 	/* The one thing we have to do. */
 	if_delgroups(ifp);
 
+	/*
+	 * Remove/wait for pending events.
+	 */
+	taskqueue_drain(taskqueue_swi, &ifp->if_linktask);
+
 	if (!vmove && !shutdown &&
 	    ifp->if_vnet->vnet_state <= SI_SUB_PSEUDO_DONE)
 		return (ENOENT);
@@ -968,11 +973,6 @@ if_detach_internal(struct ifnet *ifp, in
 		*ifcp = if_clone_findifc(ifp);
 
 	/*
-	 * Remove/wait for pending events.
-	 */
-	taskqueue_drain(taskqueue_swi, &ifp->if_linktask);
-
-	/*
 	 * Remove routes and flush queues.
 	 */
 	if_down(ifp);



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