Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Oct 2018 17:06:36 +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: r339662 - in head/sys: kern net
Message-ID:  <201810231706.w9NH6a1q041111@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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, &gtask->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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201810231706.w9NH6a1q041111>