Module Name: src Committed By: msaitoh Date: Tue Sep 12 05:28:31 UTC 2017
Modified Files: src/sys/dev/pci/ixgbe: ixv.c Log Message: Fix panic caused by rev. 1.58's change. Don't if_start from interrupt context. The restart code exists in ixv_handle_que(). To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/sys/dev/pci/ixgbe/ixv.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/ixv.c diff -u src/sys/dev/pci/ixgbe/ixv.c:1.60 src/sys/dev/pci/ixgbe/ixv.c:1.61 --- src/sys/dev/pci/ixgbe/ixv.c:1.60 Mon Sep 11 10:11:05 2017 +++ src/sys/dev/pci/ixgbe/ixv.c Tue Sep 12 05:28:31 2017 @@ -1,4 +1,4 @@ -/*$NetBSD: ixv.c,v 1.60 2017/09/11 10:11:05 msaitoh Exp $*/ +/*$NetBSD: ixv.c,v 1.61 2017/09/12 05:28:31 msaitoh Exp $*/ /****************************************************************************** @@ -808,7 +808,6 @@ ixv_msix_que(void *arg) { struct ix_queue *que = arg; struct adapter *adapter = que->adapter; - struct ifnet *ifp = adapter->ifp; struct tx_ring *txr = que->txr; struct rx_ring *rxr = que->rxr; bool more; @@ -826,19 +825,6 @@ ixv_msix_que(void *arg) IXGBE_TX_LOCK(txr); ixgbe_txeof(txr); - /* - * Make certain that if the stack - * has anything queued the task gets - * scheduled to handle it. - */ - if (!(adapter->feat_en & IXGBE_FEATURE_LEGACY_TX)) - if (!ixgbe_mq_ring_empty(ifp, txr->txr_interq)) - ixgbe_mq_start_locked(ifp, txr); - /* Only for queue 0 */ - /* NetBSD still needs this for CBQ */ - if ((&adapter->queues[0] == que) - && (!ixgbe_legacy_ring_empty(ifp, NULL))) - ixgbe_legacy_start_locked(ifp, txr); IXGBE_TX_UNLOCK(txr); /* Do AIM now? */ @@ -2545,6 +2531,7 @@ ixv_handle_que(void *context) if (!ixgbe_mq_ring_empty(ifp, txr->txr_interq)) ixgbe_mq_start_locked(ifp, txr); /* Only for queue 0 */ + /* NetBSD still needs this for CBQ */ if ((&adapter->queues[0] == que) && (!ixgbe_legacy_ring_empty(ifp, NULL))) ixgbe_legacy_start_locked(ifp, txr);