Module Name: src
Committed By: msaitoh
Date: Mon Sep 7 03:57:28 UTC 2020
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c
Log Message:
Don't schedule admin work while shutdown like the recovery mode timer.
The admin workqueue also runs while !IFF_UP like the recovery mode timer.
Apply the same change of ixgbe.c 1.254 to ixgbe_schedule_admin_tasklet()
to prevent panic. Found by ozaki-r@.
To generate a diff of this commit:
cvs rdiff -u -r1.254 -r1.255 src/sys/dev/pci/ixgbe/ixgbe.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.254 src/sys/dev/pci/ixgbe/ixgbe.c:1.255
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.254 Tue Sep 1 04:19:16 2020
+++ src/sys/dev/pci/ixgbe/ixgbe.c Mon Sep 7 03:57:27 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.254 2020/09/01 04:19:16 msaitoh Exp $ */
+/* $NetBSD: ixgbe.c,v 1.255 2020/09/07 03:57:27 msaitoh Exp $ */
/******************************************************************************
@@ -1538,9 +1538,11 @@ static void
ixgbe_schedule_admin_tasklet(struct adapter *adapter)
{
- if (atomic_cas_uint(&adapter->admin_pending, 0, 1) == 0)
- workqueue_enqueue(adapter->admin_wq,
- &adapter->admin_wc, NULL);
+ if (__predict_false(adapter->osdep.detaching == false)) {
+ if (atomic_cas_uint(&adapter->admin_pending, 0, 1) == 0)
+ workqueue_enqueue(adapter->admin_wq,
+ &adapter->admin_wc, NULL);
+ }
}
/************************************************************************