Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Feb 2020 09:57:19 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        yp@mm.st, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: panic: Assertion in_epoch(net_epoch_preempt) failed, r357793
Message-ID:  <d9ff5f47-96a2-b4c8-23a6-de794c589cd8@selasky.org>
In-Reply-To: <9c3d101f-d2f9-2d7d-b48d-9bbee6e8dd8d@mm.st>
References:  <1123c163-846f-7264-febd-3027e1b17369@mm.st> <CANCZdfrrkYk4uBjf4KXxtzrFUgCW6Cc_iKn8X2ZGbzqhiu-T5A@mail.gmail.com> <9c3d101f-d2f9-2d7d-b48d-9bbee6e8dd8d@mm.st>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------A650E9E27FF7BCCCDA5C4AE9
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

Does the attached patch fix the issue?

--HPS

--------------A650E9E27FF7BCCCDA5C4AE9
Content-Type: text/x-patch; charset=UTF-8;
 name="epoch.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="epoch.diff"

Index: sys/net/iflib.c
===================================================================
--- sys/net/iflib.c	(revision 357799)
+++ sys/net/iflib.c	(working copy)
@@ -6060,6 +6060,7 @@
 		gtask = &ctx->ifc_txqs[qid].ift_task;
 		tqg = qgroup_if_io_tqg;
 		fn = _task_fn_tx;
+		GROUPTASK_INIT(gtask, 0, fn, q);
 		break;
 	case IFLIB_INTR_RX:
 		q = &ctx->ifc_rxqs[qid];
@@ -6066,6 +6067,7 @@
 		gtask = &ctx->ifc_rxqs[qid].ifr_task;
 		tqg = qgroup_if_io_tqg;
 		fn = _task_fn_rx;
+		NET_GROUPTASK_INIT(gtask, 0, fn, q);
 		break;
 	case IFLIB_INTR_IOV:
 		q = ctx;
@@ -6072,11 +6074,11 @@
 		gtask = &ctx->ifc_vflr_task;
 		tqg = qgroup_if_config_tqg;
 		fn = _task_fn_iov;
+		GROUPTASK_INIT(gtask, 0, fn, q);
 		break;
 	default:
 		panic("unknown net intr type");
 	}
-	GROUPTASK_INIT(gtask, 0, fn, q);
 	if (irq != NULL) {
 		err = iflib_irq_set_affinity(ctx, irq, type, qid, gtask, tqg,
 		    q, name);
@@ -6136,7 +6138,7 @@
 	    iflib_fast_intr_rxtx, NULL, info, name);
 	if (err != 0)
 		return (err);
-	GROUPTASK_INIT(gtask, 0, fn, q);
+	NET_GROUPTASK_INIT(gtask, 0, fn, q);
 	res = irq->ii_res;
 	taskqgroup_attach(tqg, gtask, q, dev, res, name);
 

--------------A650E9E27FF7BCCCDA5C4AE9--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d9ff5f47-96a2-b4c8-23a6-de794c589cd8>