Module Name: src
Committed By: msaitoh
Date: Fri Jun 12 09:28:48 UTC 2020
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c
Log Message:
- Remove extra kpreempt_disable() -> kpreempt_enable() because
ixgbe_handle_msf() was changed from softint to workqueue.
- Set schedule_wqs_ok before enabling interrupt to prevent the race.
- Fix comment.
To generate a diff of this commit:
cvs rdiff -u -r1.229 -r1.230 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.229 src/sys/dev/pci/ixgbe/ixgbe.c:1.230
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.229 Thu Jun 11 09:16:05 2020
+++ src/sys/dev/pci/ixgbe/ixgbe.c Fri Jun 12 09:28:48 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.229 2020/06/11 09:16:05 msaitoh Exp $ */
+/* $NetBSD: ixgbe.c,v 1.230 2020/06/12 09:28:48 msaitoh Exp $ */
/******************************************************************************
@@ -1538,9 +1538,7 @@ ixgbe_config_link(struct adapter *adapte
ixgbe_schedule_msf_tasklet(adapter);
kpreempt_enable();
}
- kpreempt_disable();
softint_schedule(adapter->mod_si);
- kpreempt_enable();
} else {
struct ifmedia *ifm = &adapter->media;
@@ -4126,6 +4124,9 @@ ixgbe_init_locked(struct adapter *adapte
/* Setup DMA Coalescing */
ixgbe_config_dmac(adapter);
+ /* OK to schedule workqueues. */
+ adapter->schedule_wqs_ok = true;
+
/* And now turn on interrupts */
ixgbe_enable_intr(adapter);
@@ -4143,9 +4144,6 @@ ixgbe_init_locked(struct adapter *adapte
/* Now inform the stack we're ready */
ifp->if_flags |= IFF_RUNNING;
- /* OK to schedule workqueues. */
- adapter->schedule_wqs_ok = true;
-
return;
} /* ixgbe_init_locked */
@@ -4694,7 +4692,7 @@ ixgbe_handle_msf(struct work *wk, void *
/*
* Hold the IFNET_LOCK across this entire call. This will
- * prevent additional changes to adapter->phy_layer and
+ * prevent additional changes to adapter->phy_layer
* and serialize calls to this tasklet. We cannot hold the
* CORE_LOCK while calling into the ifmedia functions as
* they may block while allocating memory.