Date: Tue, 6 Feb 1996 10:29:32 +0500 (GMT+0500) From: "Serge A. Babkin" <babkin@hq.icb.chel.su> To: davidg@Root.COM Cc: alexis@unicorn.ww.net, hackers@FreeBSD.org Subject: Re: ep driver Message-ID: <199602060529.KAA02691@hq.icb.chel.su> In-Reply-To: <199602051527.HAA02845@Root.COM> from "David Greenman" at Feb 5, 96 07:27:42 am
next in thread | previous in thread | raw e-mail | index | archive | help
> > >working is to enable its epwatchdog() routine: > > > >add "ifp->if_timer = 1;" after " "ifp->if_watchdog = epwatchdog;" > > > >The reason why David Greenman has disabled it is that he throught that > >epwarchdog() restes the card. But really it does not reset it. > > Actually, what I objected to was the general use of the watchdog routine > to cover up what is clearly one or more serious bugs in the driver. The > watchdog routine in this case is being used in a way that is entirely > inappropriate and if removing the kludge causes the driver to occasionally > hang, then someone should go find out why and fix it! Okay, I think I understand you now. This patch must help. The card looks to be working with it. *** if_ep.c Fri Feb 2 08:42:17 1996 --- if_ep.c Tue Feb 6 10:20:23 1996 *************** *** 764,769 **** --- 764,770 ---- } #endif + ifp->if_timer=2; sc->arpcom.ac_if.if_opackets++; m_freem(top); /* *************** *** 819,830 **** --- 820,833 ---- } if (status & S_TX_AVAIL) { /* we need ACK */ + ifp->if_timer=0; sc->arpcom.ac_if.if_flags &= ~IFF_OACTIVE; GO_WINDOW(1); inw(BASE + EP_W1_FREE_TX); epstart(&sc->arpcom.ac_if); } if (status & S_CARD_FAILURE) { + ifp->if_timer=0; #ifdef EP_LOCAL_STATS printf("\nep%d:\n\tStatus: %x\n", unit, status); GO_WINDOW(4); *************** *** 849,854 **** --- 852,858 ---- return; } if (status & S_TX_COMPLETE) { + ifp->if_timer=0; /* we need ACK. we do it at the end */ /* * We need to read TX_STATUS until we get a 0 status in order to
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602060529.KAA02691>