Date: Sun, 18 Feb 2001 22:25:38 +0100 From: Jeroen Ruigrok/Asmodai <asmodai@wxs.nl> To: Dan Debertin <airboss@bitstream.net> Cc: "net@freebsd.org" <net@freebsd.org>, mdodd@freebsd.org, wpaul@freebsd.org Subject: Re: buffer problems with ep Message-ID: <20010218222538.D67327@daemon.ninth-circle.org> In-Reply-To: <Pine.GSO.4.21.0102181429240.21137-100000@chicka.bitstream.net>; from airboss@bitstream.net on Sun, Feb 18, 2001 at 02:33:22PM -0600 References: <20010218182344.B67327@daemon.ninth-circle.org> <Pine.GSO.4.21.0102181429240.21137-100000@chicka.bitstream.net>
next in thread | previous in thread | raw e-mail | index | archive | help
[Bill Paul and Matthew Dodd cc:'d. Sorry for this intrusion guys, but I just want you opinions on some of the blabbering I exclaim] -On [20010218 21:37], Dan Debertin (airboss@bitstream.net) wrote: >On Sun, 18 Feb 2001, Jeroen Ruigrok/Asmodai wrote: > >> -On [20010216 16:00], Dan Debertin (airboss@bitstream.net) wrote: >> >flags=8c43<UP,BROADCAST,RUNNING,OACTIVE,SIMPLEX,MULTICAST> mtu 1500 >> >> OK, so it is setting the output active flag and quite possibly never >> returns from that state. > >Quite so. Matthew Dodd said that NetBSD might've a workaround/solution for this. His guess was that the hardware wedges for some reason. >> Hmmm, if you don't do an ifconfig down/up or just up it won't come back, >> right? I mean, you can sit it there for days if you want, you have to >> up it to get it back? > >Yes, and have done so. I've left it hung for as long as 2 days; it doesn't >pick back up until I ifconfig down/up. During this time the OACTIVE flag stays there all the time? Which FreeBSD version? What is the dmesg line for the ep card you have? [grep ep0 /var/run/dmesg.boot] >Strangely, this only way I can reproduce the problem is by installing >Solaris patch-clusters on my diskless workstation via NFS. Every other >network activity, no matter how strenuous, won't trigger it. Try nmap scans. I got an ep here too: ep0: <3Com 3C509-TP EtherLink III> at port 0x300-0x30f irq 10 on isa0 which I can have `hanging' too after I did some nmap scans. I haven't checked for the OACTIVE flag yet. I'll try to reproduce this during the week. I have been looking if I could find a solution for the problem. When you do the ifconfig ep0 up you will trigger the ep_if_init(sc) line in if_ep.c: case SIOCSIFFLAGS: if (((ifp->if_flags & IFF_UP) == 0) && (ifp->if_flags & IFF_RUNNING)) { ifp->if_flags &= ~IFF_RUNNING; epstop(sc); } else { /* reinitialize card on any parameter change */ ep_if_init(sc); } break; Since your card is already in RUNNING and UP status and those bits are set in the ifp.if_flags. in ep_if_init() we find: ifp->if_flags |= IFF_RUNNING; ifp->if_flags &= ~IFF_OACTIVE; /* just in case */ Which effectively sets RUNNING and clears OACTIVE and then proceeds to ep_if_start(). I need to look further, but I have had other things to do as well... Ideas/thoughts welcome. -- Jeroen Ruigrok vd Werven/Asmodai asmodai@[wxs.nl|bart.nl|freebsd.org] Documentation nutter/C-rated Coder BSD: Technical excellence at its best D78D D0AD 244D 1D12 C9CA 7152 035C 1138 546A B867 I'm a child of the air, I'm a witch of the wind... To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010218222538.D67327>