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 INTx/MSI handler did not schedule work...



details:   https://anonhg.NetBSD.org/src/rev/91f5eb65e40b
branches:  trunk
changeset: 321254:91f5eb65e40b
user:      knakahara <knakahara%NetBSD.org@localhost>
date:      Thu Mar 08 02:39:42 2018 +0000

description:
Fix INTx/MSI handler did not schedule workqueue. Pointed out by msaitoh@n.o.

diffstat:

 sys/dev/pci/ixgbe/ixgbe.c |  13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diffs (27 lines):

diff -r fcd4345923c3 -r 91f5eb65e40b sys/dev/pci/ixgbe/ixgbe.c
--- a/sys/dev/pci/ixgbe/ixgbe.c Wed Mar 07 23:08:29 2018 +0000
+++ b/sys/dev/pci/ixgbe/ixgbe.c Thu Mar 08 02:39:42 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.131 2018/03/07 11:18:29 knakahara Exp $ */
+/* $NetBSD: ixgbe.c,v 1.132 2018/03/08 02:39:42 knakahara Exp $ */
 
 /******************************************************************************
 
@@ -4725,7 +4725,16 @@
 
        if (more) {
                que->req.ev_count++;
-               softint_schedule(que->que_si);
+               if (adapter->txrx_use_workqueue) {
+                       /*
+                        * "enqueued flag" is not required here.
+                        * See ixgbe_msix_que().
+                        */
+                       workqueue_enqueue(adapter->que_wq, &que->wq_cookie,
+                           curcpu());
+               } else {
+                       softint_schedule(que->que_si);
+               }
        } else
                ixgbe_enable_intr(adapter);
 



Home | Main Index | Thread Index | Old Index