Date: Sat, 26 May 2018 00:46:08 +0000 (UTC) From: Eric Joyner <erj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r334231 - head/sys/net Message-ID: <201805260046.w4Q0k8l2099090@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805260046.w4Q0k8l2099090>