cvs commit: src/sys/dev/ed if_ed.c if_ed_pccard.c if_edvar.h

Ruslan Ermilov ru at freebsd.org
Mon Sep 19 07:54:42 PDT 2005


On Mon, Sep 19, 2005 at 08:31:11AM -0600, M. Warner Losh wrote:
> In message: <20050919054051.GB65954 at ip.net.ua>
>             Ruslan Ermilov <ru at freebsd.org> writes:
> : About the commonality...  Usually foo_stop() (which is called first in
> : foo_detach() if you were talking about the detach) disables interrupts,
> : so foo_intr() doesn't usually happen.  From reading the code, I see the
> : same holds true for ed(4).
> 
> Wrong.  Foo_intr() does still happen because other devices can
> generate interrupts...
> 
Ah, you're right, I missed this bit.  :-)

> : OTOH, it was shown that on some SMP machines it's possible to get a
> : call to foo_intr() after foo_stop() has been called by foo_shutdown(),
> : which will lead to a panic in most of the drivers.  See kern/85005 and
> : kern/62889 for some examples.
> : 
> : I think the generic solution to this problem should be to return from
> : foo_intr() quickly if IFF_DRV_RUNNING is not set.
> 
> Only if we free ifp after we tear down the interrupts.
> 
Yes.


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-all/attachments/20050919/ef70ccc1/attachment.bin


More information about the cvs-all mailing list