iflib: Fix panic during driver reload stress test

During a driver reload stress test, after 50-300 reloads a panic occurs.
After adding sleeps in between loading and unloading the driver, the
issue does not occur.  It's possible that loading/unloading too fast may
cause the gt_taskqueue pointer to be freed earlier than expected;
checking for a null pointer first fixes it.

Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by:	erj@
Tested by:	jeffrey.e.pieper@intel.com
MFC after:	3 days
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D39457
This commit is contained in:
Przemyslaw Lewandowski
2023-07-27 15:47:12 -07:00
committed by Eric Joyner
parent 831b1ff791
commit 04d4e34538
+2 -1
View File
@@ -1650,7 +1650,8 @@ iflib_fast_intr_ctx(void *arg)
return (result); return (result);
} }
GROUPTASK_ENQUEUE(gtask); if (gtask->gt_taskqueue != NULL)
GROUPTASK_ENQUEUE(gtask);
return (FILTER_HANDLED); return (FILTER_HANDLED);
} }