Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pci/ixgbe Fix panic caused by rev. 1.58's change. Do...



details:   https://anonhg.NetBSD.org/src/rev/7725d68c7592
branches:  trunk
changeset: 356247:7725d68c7592
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Tue Sep 12 05:28:31 2017 +0000

description:
Fix panic caused by rev. 1.58's change. Don't if_start from interrupt context.
The restart code exists in ixv_handle_que().

diffstat:

 sys/dev/pci/ixgbe/ixv.c |  17 ++---------------
 1 files changed, 2 insertions(+), 15 deletions(-)

diffs (45 lines):

diff -r e39dbbb58875 -r 7725d68c7592 sys/dev/pci/ixgbe/ixv.c
--- a/sys/dev/pci/ixgbe/ixv.c   Tue Sep 12 01:01:25 2017 +0000
+++ b/sys/dev/pci/ixgbe/ixv.c   Tue Sep 12 05:28:31 2017 +0000
@@ -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 @@
 {
        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 @@
 
        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 @@
                        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);



Home | Main Index | Thread Index | Old Index