On Tuesday 23 June 2009 5:13:42 pm Marius Strobl wrote:
> On Tue, Jun 23, 2009 at 05:03:20PM -0400, John Baldwin wrote:
> > On Tuesday 23 June 2009 4:36:59 pm Marius Strobl wrote:
> > > Author: marius
> > > Date: Tue Jun 23 20:36:59 2009
> > > New Revision: 194763
> > > URL: http://svn.freebsd.org/changeset/base/194763
> > > 
> > > Log:
> > >   - Initialize the ifnet structure, especially if_dname, before probing
> > >     the PHYs as some PHY drivers use it (but probably shouldn't). How
> > >     gem(4) has worked with brgphy(4) on powerpc without this so far is
> > >     unclear to me.
> > >   - Introduce a dying flag which is set during detach and checked in
> > >     gem_ioctl() in order to prevent active BPF listeners to clear
> > >     promiscuous mode which may lead to the tick callout being restarted
> > >     which will trigger a panic once it's actually gone.
> > 
> > This should not be needed assuming you follow a model of:
> > 
> > gem_detach()
> > {
> > 
> >     ether_ifdetach(ifp);    /* calls bpfdetach() */
> >     GEM_LOCK(sc);
> >     gem_stop(sc);
> >     GEM_UNLOCK(sc);
> >     ...
> > }
> > 
> > If you are invoking gem_stop() prior to ether_ifdetach() then that is your 
> > real bug. :)
> > 
> 
> Okay, I'll let yongari@ comment on this as he was the one
> who claimed that either clearing IFF_UP in the driver before
> calling ether_ifdetach(9) (which I think is a layering
> violation) or the committed approach is necessary in order
> to solve the problem :)

I don't think one needs to clear IFF_UP explicitly.  if_detach() will 
if_down() the interface as parts of its internal teardown.

-- 
John Baldwin
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to