mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Tweak the interrupt handler so that we call the txeof handler more often,
to hopefully prevent the TX DMA queue from filling up and never getting flushed.
This commit is contained in:
parent
0219a42155
commit
0a4b345e9f
2 changed files with 10 additions and 4 deletions
|
|
@ -1094,7 +1094,10 @@ static void sf_intr(arg)
|
|||
if (status & SF_ISR_RXDQ1_DMADONE)
|
||||
sf_rxeof(sc);
|
||||
|
||||
if (status & SF_ISR_TX_TXDONE)
|
||||
if (status & SF_ISR_TX_TXDONE ||
|
||||
status & SF_ISR_TX_DMADONE ||
|
||||
status & SF_ISR_TX_QUEUEDONE ||
|
||||
status & SF_ISR_TX_LOFIFO)
|
||||
sf_txeof(sc);
|
||||
|
||||
if (status & SF_ISR_ABNORMALINTR) {
|
||||
|
|
@ -1305,7 +1308,7 @@ static void sf_start(ifp)
|
|||
sc = ifp->if_softc;
|
||||
SF_LOCK(sc);
|
||||
|
||||
if (!sc->sf_link) {
|
||||
if (!sc->sf_link && ifp->if_snd.ifq_len < 10) {
|
||||
SF_UNLOCK(sc);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1094,7 +1094,10 @@ static void sf_intr(arg)
|
|||
if (status & SF_ISR_RXDQ1_DMADONE)
|
||||
sf_rxeof(sc);
|
||||
|
||||
if (status & SF_ISR_TX_TXDONE)
|
||||
if (status & SF_ISR_TX_TXDONE ||
|
||||
status & SF_ISR_TX_DMADONE ||
|
||||
status & SF_ISR_TX_QUEUEDONE ||
|
||||
status & SF_ISR_TX_LOFIFO)
|
||||
sf_txeof(sc);
|
||||
|
||||
if (status & SF_ISR_ABNORMALINTR) {
|
||||
|
|
@ -1305,7 +1308,7 @@ static void sf_start(ifp)
|
|||
sc = ifp->if_softc;
|
||||
SF_LOCK(sc);
|
||||
|
||||
if (!sc->sf_link) {
|
||||
if (!sc->sf_link && ifp->if_snd.ifq_len < 10) {
|
||||
SF_UNLOCK(sc);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue