Date: Thu, 3 Apr 2008 21:00:11 GMT From: John Baldwin <jhb@FreeBSD.org> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/120915: [de] [patch] GENERIC does not boot: if_de is broken Message-ID: <200804032100.m33L0BFk037431@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/120915; it has been noted by GNATS. From: John Baldwin <jhb@freebsd.org> To: Peter Much <pmc@citylink.dinoex.sub.org> Cc: bug-followup@freebsd.org Subject: Re: kern/120915: [de] [patch] GENERIC does not boot: if_de is broken Date: Thu, 3 Apr 2008 16:53:22 -0400 On Thursday 27 March 2008 07:31:48 pm Peter Much wrote: > On Wed, Mar 26, 2008 at 05:01:24PM -0400, John Baldwin wrote: > ! This patch is a slight variant on the above and other places in the driver use > ! the DEVICEPROBE test to determine if the mediaselect testpacket bit is being > ! done: > > I tested this (still with 6.3-RELEASE-p1), it compiles, but, sorry to > say, this one does panick on attach like before. (I did not yet check > further for reasons like what this DEVICEPROBE value is supposed to > contain.) Try this instead then. It keeps DEVICEPROBE set slightly longer and shouldn't clear it until BPF is fully setup. Index: if_de.c =================================================================== RCS file: /usr/cvs/src/sys/dev/de/if_de.c,v retrieving revision 1.183 diff -u -r1.183 if_de.c --- if_de.c 7 Jun 2007 00:28:47 -0000 1.183 +++ if_de.c 3 Apr 2008 20:51:51 -0000 @@ -4053,7 +4053,8 @@ /* * bounce a copy to the bpf listener, if any. */ - BPF_MTAP(sc->tulip_ifp, m); + if (!(sc->tulip_flags & TULIP_DEVICEPROBE)) + BPF_MTAP(sc->tulip_ifp, m); /* * The descriptors have been filled in. Now get ready @@ -4437,13 +4438,16 @@ ifmedia_init(&sc->tulip_ifmedia, 0, tulip_ifmedia_change, tulip_ifmedia_status); - sc->tulip_flags &= ~TULIP_DEVICEPROBE; tulip_ifmedia_add(sc); tulip_reset(sc); TULIP_UNLOCK(sc); ether_ifattach(sc->tulip_ifp, sc->tulip_enaddr); + + TULIP_LOCK(sc); + sc->tulip_flags &= ~TULIP_DEVICEPROBE; + TULIP_UNLOCK(sc); } /* Release memory for a single descriptor ring. */ -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804032100.m33L0BFk037431>