aboutsummaryrefslogtreecommitdiff
path: root/sys/net/iflib.c
diff options
context:
space:
mode:
authorEric Joyner <erj@FreeBSD.org>2018-05-26 00:46:08 +0000
committerEric Joyner <erj@FreeBSD.org>2018-05-26 00:46:08 +0000
commit1d7ef1867a1d39f7b0e671fb0dcf44422a6c2b6e (patch)
tree57e89f806734adee088ce73657d4d82be7815419 /sys/net/iflib.c
parent204d74320d1f1b4cdc2eea6e2e9e9b4b3232c615 (diff)
downloadsrc-1d7ef1867a1d39f7b0e671fb0dcf44422a6c2b6e.tar.gz
src-1d7ef1867a1d39f7b0e671fb0dcf44422a6c2b6e.zip
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
Notes
Notes: svn path=/head/; revision=334231
Diffstat (limited to 'sys/net/iflib.c')
-rw-r--r--sys/net/iflib.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net/iflib.c b/sys/net/iflib.c
index 9cb67fc14afc..4f5744466817 100644
--- a/sys/net/iflib.c
+++ b/sys/net/iflib.c
@@ -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);