svn commit: r282644 - projects/em_mq/sys/dev/e1000
Sean Bruno
sbruno at FreeBSD.org
Fri May 8 16:18:11 UTC 2015
Author: sbruno
Date: Fri May 8 16:18:11 2015
New Revision: 282644
URL: https://svnweb.freebsd.org/changeset/base/282644
Log:
Ensure that *both* rx queues get scheduled by writing both queues to the IMS
register when em_local_timer() runs.
Modified:
projects/em_mq/sys/dev/e1000/if_em.c
Modified: projects/em_mq/sys/dev/e1000/if_em.c
==============================================================================
--- projects/em_mq/sys/dev/e1000/if_em.c Fri May 8 16:02:31 2015 (r282643)
+++ projects/em_mq/sys/dev/e1000/if_em.c Fri May 8 16:18:11 2015 (r282644)
@@ -2263,7 +2263,7 @@ em_local_timer(void *arg)
if_t ifp = adapter->ifp;
struct tx_ring *txr = adapter->tx_rings;
struct rx_ring *rxr = adapter->rx_rings;
- u32 trigger;
+ u32 trigger = 0;
EM_CORE_LOCK_ASSERT(adapter);
@@ -2276,9 +2276,11 @@ em_local_timer(void *arg)
e1000_rar_set(&adapter->hw, adapter->hw.mac.addr, 0);
/* Mask to use in the irq trigger */
- if (adapter->msix_mem)
- trigger = rxr->ims;
- else
+ if (adapter->msix_mem) {
+ for (int i = 0; i < adapter->num_queues; i++, rxr++)
+ trigger |= rxr->ims;
+ rxr = adapter->rx_rings;
+ } else
trigger = E1000_ICS_RXDMT0;
/*
More information about the svn-src-projects
mailing list