diff options
author | Eric Joyner <erj@FreeBSD.org> | 2018-05-26 00:46:08 +0000 |
---|---|---|
committer | Eric Joyner <erj@FreeBSD.org> | 2018-05-26 00:46:08 +0000 |
commit | 1d7ef1867a1d39f7b0e671fb0dcf44422a6c2b6e (patch) | |
tree | 57e89f806734adee088ce73657d4d82be7815419 /sys/net/iflib.c | |
parent | 204d74320d1f1b4cdc2eea6e2e9e9b4b3232c615 (diff) | |
download | src-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.c | 3 |
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); |