svn commit: r334231 - head/sys/net

Eric Joyner erj at FreeBSD.org
Sat May 26 00:46:09 UTC 2018


Author: erj
Date: Sat May 26 00:46:08 2018
New Revision: 334231
URL: https://svnweb.freebsd.org/changeset/base/334231

Log:
  iflib: Add new shared flag: IFLIB_ADMIN_ALWAYS_RUN
  
  ixl(4)'s nvmupdate utility expects the nvmupdate process to run
  while the interface is down; these nvm update commands use the
  admin queue, so the admin queue needs to be able to generate
  interrupts and be processed while the interface is down.
  
  So add a flag that ixl(4) sets that lets the entire admin task
  run even when the interface is marked down/IFF_DRV_RUNNING isn't set.
  
  With this change, nvmupdate should function like it did pre-iflib.
  
  Reviewed by:	gallatin@, sbruno@
  MFC after:	1 week
  Sponsored by:	Intel Corporation
  Differential Revision:	https://reviews.freebsd.org/D15575

Modified:
  head/sys/net/iflib.c
  head/sys/net/iflib.h

Modified: head/sys/net/iflib.c
==============================================================================
--- head/sys/net/iflib.c	Sat May 26 00:41:50 2018	(r334230)
+++ head/sys/net/iflib.c	Sat May 26 00:46:08 2018	(r334231)
@@ -3807,7 +3807,8 @@ _task_fn_admin(void *context)
 	ctx->ifc_flags &= ~(IFC_DO_RESET|IFC_DO_WATCHDOG);
 	STATE_UNLOCK(ctx);
 
-	if (!running & !oactive)
+	if ((!running & !oactive) &&
+	    !(ctx->ifc_sctx->isc_flags & IFLIB_ADMIN_ALWAYS_RUN))
 		return;
 
 	CTX_LOCK(ctx);

Modified: head/sys/net/iflib.h
==============================================================================
--- head/sys/net/iflib.h	Sat May 26 00:41:50 2018	(r334230)
+++ head/sys/net/iflib.h	Sat May 26 00:46:08 2018	(r334231)
@@ -358,7 +358,10 @@ typedef enum {
  * autogenerate a MAC address
  */
 #define IFLIB_GEN_MAC	0x08000
-
+/*
+ * Interface needs admin task to ignore interface up/down status
+ */
+#define IFLIB_ADMIN_ALWAYS_RUN	0x10000
 
 
 /*


More information about the svn-src-head mailing list