svn commit: r339662 - in head/sys: kern net
Eric Joyner
erj at FreeBSD.org
Tue Oct 23 17:06:37 UTC 2018
Author: erj
Date: Tue Oct 23 17:06:36 2018
New Revision: 339662
URL: https://svnweb.freebsd.org/changeset/base/339662
Log:
Revert r339634.
That commit is causing kernel panics in em(4), so this will be reverted
until those are fixed.
Reported by: ae@, pho@, et al
Sponsored by: Intel Corporation
Modified:
head/sys/kern/subr_gtaskqueue.c
head/sys/net/iflib.c
Modified: head/sys/kern/subr_gtaskqueue.c
==============================================================================
--- head/sys/kern/subr_gtaskqueue.c Tue Oct 23 16:35:58 2018 (r339661)
+++ head/sys/kern/subr_gtaskqueue.c Tue Oct 23 17:06:36 2018 (r339662)
@@ -812,7 +812,6 @@ taskqgroup_detach(struct taskqgroup *qgroup, struct gr
qgroup->tqg_queue[i].tgc_cnt--;
LIST_REMOVE(gtask, gt_list);
mtx_unlock(&qgroup->tqg_lock);
- gtaskqueue_drain(gtask->gt_taskqueue, >ask->gt_task);
gtask->gt_taskqueue = NULL;
}
Modified: head/sys/net/iflib.c
==============================================================================
--- head/sys/net/iflib.c Tue Oct 23 16:35:58 2018 (r339661)
+++ head/sys/net/iflib.c Tue Oct 23 17:06:36 2018 (r339662)
@@ -2279,8 +2279,8 @@ iflib_timer(void *arg)
STATE_LOCK(ctx);
if_setdrvflagbits(ctx->ifc_ifp, IFF_DRV_OACTIVE, IFF_DRV_RUNNING);
ctx->ifc_flags |= (IFC_DO_WATCHDOG|IFC_DO_RESET);
- STATE_UNLOCK(ctx);
iflib_admin_intr_deferred(ctx);
+ STATE_UNLOCK(ctx);
}
static void
@@ -2802,8 +2802,8 @@ iflib_rxeof(iflib_rxq_t rxq, qidx_t budget)
err:
STATE_LOCK(ctx);
ctx->ifc_flags |= IFC_DO_RESET;
- STATE_UNLOCK(ctx);
iflib_admin_intr_deferred(ctx);
+ STATE_UNLOCK(ctx);
return (false);
}
@@ -5973,10 +5973,7 @@ iflib_admin_intr_deferred(if_ctx_t ctx)
{
#ifdef INVARIANTS
struct grouptask *gtask;
-#endif
- if (iflib_in_detach(ctx))
- return;
-#ifdef INVARIANTS
+
gtask = &ctx->ifc_admin_task;
MPASS(gtask != NULL && gtask->gt_taskqueue != NULL);
#endif
@@ -5987,8 +5984,6 @@ iflib_admin_intr_deferred(if_ctx_t ctx)
void
iflib_iov_intr_deferred(if_ctx_t ctx)
{
- if (iflib_in_detach(ctx))
- return;
GROUPTASK_ENQUEUE(&ctx->ifc_vflr_task);
}
More information about the svn-src-all
mailing list