Module Name:    src
Committed By:   knakahara
Date:           Thu Mar  8 02:39:42 UTC 2018

Modified Files:
        src/sys/dev/pci/ixgbe: ixgbe.c

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


To generate a diff of this commit:
cvs rdiff -u -r1.131 -r1.132 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.131 src/sys/dev/pci/ixgbe/ixgbe.c:1.132
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.131	Wed Mar  7 11:18:29 2018
+++ src/sys/dev/pci/ixgbe/ixgbe.c	Thu Mar  8 02:39:42 2018
@@ -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 @@ ixgbe_legacy_irq(void *arg)
 
 	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);
 

Reply via email to