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-src/attachments/20050919/ef70ccc1/attachment.bin
More information about the cvs-src
mailing list