Module Name: src Committed By: msaitoh Date: Wed Jun 17 09:11:13 UTC 2020
Modified Files: src/sys/dev/pci/ixgbe: ixgbe.c Log Message: Add missing callout_stop() for recovery_mode_timer. NOTE: One of the difference between the local_timer and recovery_mode_timer is that local_timer runs only when IFF_UP and recovery_mode_timer always runs (it's enabled on attach). To generate a diff of this commit: cvs rdiff -u -r1.230 -r1.231 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.230 src/sys/dev/pci/ixgbe/ixgbe.c:1.231 --- src/sys/dev/pci/ixgbe/ixgbe.c:1.230 Fri Jun 12 09:28:48 2020 +++ src/sys/dev/pci/ixgbe/ixgbe.c Wed Jun 17 09:11:13 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ixgbe.c,v 1.230 2020/06/12 09:28:48 msaitoh Exp $ */ +/* $NetBSD: ixgbe.c,v 1.231 2020/06/17 09:11:13 msaitoh Exp $ */ /****************************************************************************** @@ -3593,8 +3593,10 @@ ixgbe_detach(device_t dev, int flags) IXGBE_WRITE_REG(&adapter->hw, IXGBE_CTRL_EXT, ctrl_ext); callout_halt(&adapter->timer, NULL); - if (adapter->feat_en & IXGBE_FEATURE_RECOVERY_MODE) + if (adapter->feat_en & IXGBE_FEATURE_RECOVERY_MODE) { + callout_stop(&adapter->recovery_mode_timer); callout_halt(&adapter->recovery_mode_timer, NULL); + } if (adapter->feat_en & IXGBE_FEATURE_NETMAP) netmap_detach(adapter->ifp); @@ -3917,6 +3919,8 @@ ixgbe_init_locked(struct adapter *adapte hw->adapter_stopped = FALSE; ixgbe_stop_adapter(hw); callout_stop(&adapter->timer); + if (adapter->feat_en & IXGBE_FEATURE_RECOVERY_MODE) + callout_stop(&adapter->recovery_mode_timer); for (i = 0, que = adapter->queues; i < adapter->num_queues; i++, que++) que->disabled_count = 0; @@ -4062,6 +4066,9 @@ ixgbe_init_locked(struct adapter *adapte ixgbe_enable_rx_dma(hw, rxctrl); callout_reset(&adapter->timer, hz, ixgbe_local_timer, adapter); + if (adapter->feat_en & IXGBE_FEATURE_RECOVERY_MODE) + callout_reset(&adapter->recovery_mode_timer, hz, + ixgbe_recovery_mode_timer, adapter); /* Set up MSI/MSI-X routing */ if (adapter->feat_en & IXGBE_FEATURE_MSIX) {