diff options
author | Luigi Rizzo <luigi@FreeBSD.org> | 2013-04-30 16:51:58 +0000 |
---|---|---|
committer | Luigi Rizzo <luigi@FreeBSD.org> | 2013-04-30 16:51:58 +0000 |
commit | 9b2e4517d549df68d2059a078b317b83986732b3 (patch) | |
tree | d5aa354ae90d18bf25b0e08f43a64325be6737dc /sys/dev | |
parent | d61ba7524722fc20d8f0b53e0923b50521ae6cd3 (diff) | |
download | src-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')
-rw-r--r-- | sys/dev/e1000/if_lem.c | 13 |
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)) { |