if_awg: don't process transmitted packets on TX_BUF_UA_INT, only on TX_INT

TX_BUF_UA_INT is set when there are no buffers to transmit and can
happen before hw.awg.tx_interval segments have been transmitted.

To reduce load, tx cleanup should be done in hw.awg.tx_interval intervals.

Submitted by:	Guy Yur <guyyur@gmail.com>
Differential Revision:	https://reviews.freebsd.org/D13034
This commit is contained in:
manu 2017-11-18 20:59:20 +00:00
parent a16c833842
commit 0649de8615

View File

@ -963,8 +963,10 @@ awg_intr(void *arg)
if (val & RX_INT)
awg_rxintr(sc);
if (val & (TX_INT|TX_BUF_UA_INT)) {
if (val & TX_INT)
awg_txintr(sc);
if (val & (TX_INT | TX_BUF_UA_INT)) {
if (!if_sendq_empty(sc->ifp))
awg_start_locked(sc);
}