diff options
author | jmallett <jmallett@FreeBSD.org> | 2011-01-10 06:46:18 +0000 |
---|---|---|
committer | jmallett <jmallett@FreeBSD.org> | 2011-01-10 06:46:18 +0000 |
commit | f9f16511fff0fd926491cd31e0669e9b4e2c9042 (patch) | |
tree | 228d4825bb0eecc24c5f56cc1ccf2c23a1131610 /sys/mips/cavium | |
parent | 910c45c7da5ea278c29eafc9cd84be7b8af5469a (diff) | |
download | FreeBSD-src-f9f16511fff0fd926491cd31e0669e9b4e2c9042.zip FreeBSD-src-f9f16511fff0fd926491cd31e0669e9b4e2c9042.tar.gz |
o) Free mbufs in error cases.
o) Clear/acknowledge receive interrupt at end of thread. This gives the
management interfaces performance on the order of 100Mbps rather than
the previous level of 10Mbps on my MR-730.
Diffstat (limited to 'sys/mips/cavium')
-rw-r--r-- | sys/mips/cavium/if_octm.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/mips/cavium/if_octm.c b/sys/mips/cavium/if_octm.c index 0c3c4ea..bcf80e7 100644 --- a/sys/mips/cavium/if_octm.c +++ b/sys/mips/cavium/if_octm.c @@ -511,9 +511,15 @@ octm_rx_intr(void *arg) continue; } + m_freem(m); + if (len == 0) break; sc->sc_ifp->if_ierrors++; } + + /* Acknowledge interrupts. */ + cvmx_write_csr(CVMX_MIXX_ISR(sc->sc_port), mixx_isr.u64); + cvmx_read_csr(CVMX_MIXX_ISR(sc->sc_port)); } |