summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2011-01-10 06:46:18 +0000
committerjmallett <jmallett@FreeBSD.org>2011-01-10 06:46:18 +0000
commitf9f16511fff0fd926491cd31e0669e9b4e2c9042 (patch)
tree228d4825bb0eecc24c5f56cc1ccf2c23a1131610 /sys/mips
parent910c45c7da5ea278c29eafc9cd84be7b8af5469a (diff)
downloadFreeBSD-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')
-rw-r--r--sys/mips/cavium/if_octm.c6
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));
}
OpenPOWER on IntegriCloud