Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/mips/sibyte/dev Call sbmac_start() at the end of th...



details:   https://anonhg.NetBSD.org/src/rev/a89c884a7a71
branches:  trunk
changeset: 559299:a89c884a7a71
user:      simonb <simonb%NetBSD.org@localhost>
date:      Sun Mar 14 10:55:45 2004 +0000

description:
Call sbmac_start() at the end of the interrupt service function to try
to send more packets.  Fixes problems with high UDP Tx rates.
Thanks to Matt Thomas for applying clue.

diffstat:

 sys/arch/mips/sibyte/dev/sbmac.c |  8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diffs (36 lines):

diff -r e9afa2ca0021 -r a89c884a7a71 sys/arch/mips/sibyte/dev/sbmac.c
--- a/sys/arch/mips/sibyte/dev/sbmac.c  Sun Mar 14 10:36:09 2004 +0000
+++ b/sys/arch/mips/sibyte/dev/sbmac.c  Sun Mar 14 10:55:45 2004 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: sbmac.c,v 1.13 2004/03/08 11:28:48 simonb Exp $ */
+/* $NetBSD: sbmac.c,v 1.14 2004/03/14 10:55:45 simonb Exp $ */
 
 /*
  * Copyright 2000, 2001
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sbmac.c,v 1.13 2004/03/08 11:28:48 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sbmac.c,v 1.14 2004/03/14 10:55:45 simonb Exp $");
 
 #include "bpfilter.h"
 #include "opt_inet.h"
@@ -1688,6 +1688,7 @@
 sbmac_intr(void *xsc, uint32_t status, uint32_t pc)
 {
        struct sbmac_softc *sc = (struct sbmac_softc *) xsc;
+       struct ifnet *ifp = &sc->sc_ethercom.ec_if;
        uint64_t isr;
 
        for (;;) {
@@ -1715,6 +1716,9 @@
                if (isr & (M_MAC_INT_CHANNEL << S_MAC_RX_CH0))
                        sbdma_rx_process(sc, &(sc->sbm_rxdma));
        }
+
+       /* try to get more packets going */
+       sbmac_start(ifp);
 }
 
 



Home | Main Index | Thread Index | Old Index