summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2010-03-31 23:24:42 +0000
committerjfv <jfv@FreeBSD.org>2010-03-31 23:24:42 +0000
commitc470b0d21d5c8a8b7ae21d1002b426d70563d49c (patch)
treee2115aed077e5a1e84211d1332bb8613837980f0 /sys/dev
parent69ea0c9b4e42f7055ca1b8bbee0a6c37924b69ed (diff)
downloadFreeBSD-src-c470b0d21d5c8a8b7ae21d1002b426d70563d49c.zip
FreeBSD-src-c470b0d21d5c8a8b7ae21d1002b426d70563d49c.tar.gz
The POLL code was missed in the queue conversion,
change the argument type to igb_rxeof() to the correct type. Note, any users of POLLING must be sure and set the number of queues to 1 for things to work correctly.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/e1000/if_igb.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sys/dev/e1000/if_igb.c b/sys/dev/e1000/if_igb.c
index 44f0e2e..5fdd52c 100644
--- a/sys/dev/e1000/if_igb.c
+++ b/sys/dev/e1000/if_igb.c
@@ -1316,7 +1316,8 @@ igb_irq_fast(void *arg)
#ifdef DEVICE_POLLING
/*********************************************************************
*
- * Legacy polling routine
+ * Legacy polling routine : if using this code you MUST be sure that
+ * multiqueue is not defined, ie, set igb_num_queues to 1.
*
*********************************************************************/
#if __FreeBSD_version >= 800000
@@ -1328,12 +1329,12 @@ static void
#endif
igb_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
{
- struct adapter *adapter = ifp->if_softc;
- struct rx_ring *rxr = adapter->rx_rings;
- struct tx_ring *txr = adapter->tx_rings;
- u32 reg_icr, rx_done = 0;
- u32 loop = IGB_MAX_LOOP;
- bool more;
+ struct adapter *adapter = ifp->if_softc;
+ struct igb_queue *que = adapter->queues;
+ struct tx_ring *txr = adapter->tx_rings;
+ u32 reg_icr, rx_done = 0;
+ u32 loop = IGB_MAX_LOOP;
+ bool more;
IGB_CORE_LOCK(adapter);
if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
@@ -1353,7 +1354,7 @@ igb_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
IGB_CORE_UNLOCK(adapter);
/* TODO: rx_count */
- rx_done = igb_rxeof(rxr, count) ? 1 : 0;
+ rx_done = igb_rxeof(que, count) ? 1 : 0;
IGB_TX_LOCK(txr);
do {
OpenPOWER on IntegriCloud