aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/e1000
diff options
context:
space:
mode:
authorLuigi Rizzo <luigi@FreeBSD.org>2013-04-30 16:51:58 +0000
committerLuigi Rizzo <luigi@FreeBSD.org>2013-04-30 16:51:58 +0000
commit9b2e4517d549df68d2059a078b317b83986732b3 (patch)
treed5aa354ae90d18bf25b0e08f43a64325be6737dc /sys/dev/e1000
parentd61ba7524722fc20d8f0b53e0923b50521ae6cd3 (diff)
downloadsrc-9b2e4517d549df68d2059a078b317b83986732b3.tar.gz
src-9b2e4517d549df68d2059a078b317b83986732b3.zip
use netmap_rx_irq() and netmap_tx_irq() instead of replicating the
logic in the individual driver.
Notes
Notes: svn path=/head/; revision=250109
Diffstat (limited to 'sys/dev/e1000')
-rw-r--r--sys/dev/e1000/if_lem.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/sys/dev/e1000/if_lem.c b/sys/dev/e1000/if_lem.c
index c2dcfc27ba20..ae7893a2a8fa 100644
--- a/sys/dev/e1000/if_lem.c
+++ b/sys/dev/e1000/if_lem.c
@@ -2980,10 +2980,8 @@ lem_txeof(struct adapter *adapter)
EM_TX_LOCK_ASSERT(adapter);
#ifdef DEV_NETMAP
- if (ifp->if_capenable & IFCAP_NETMAP) {
- selwakeuppri(&NA(ifp)->tx_rings[0].si, PI_NET);
+ if (netmap_tx_irq(ifp, 0 | (NETMAP_LOCKED_ENTER|NETMAP_LOCKED_EXIT)))
return;
- }
#endif /* DEV_NETMAP */
if (adapter->num_tx_desc_avail == adapter->num_tx_desc)
return;
@@ -3459,13 +3457,8 @@ lem_rxeof(struct adapter *adapter, int count, int *done)
BUS_DMASYNC_POSTREAD);
#ifdef DEV_NETMAP
- if (ifp->if_capenable & IFCAP_NETMAP) {
- struct netmap_adapter *na = NA(ifp);
- na->rx_rings[0].nr_kflags |= NKR_PENDINTR;
- selwakeuppri(&na->rx_rings[0].si, PI_NET);
- EM_RX_UNLOCK(adapter);
- return (0);
- }
+ if (netmap_rx_irq(ifp, 0 | NETMAP_LOCKED_ENTER, &rx_sent))
+ return (FALSE);
#endif /* DEV_NETMAP */
if (!((current_desc->status) & E1000_RXD_STAT_DD)) {