cleanup of interface shutdown/detach Was: cvs commit: src/sys/dev/an
Gleb Smirnoff
glebius at FreeBSD.org
Wed Sep 21 12:03:14 PDT 2005
On Wed, Sep 21, 2005 at 02:55:57PM -0400, John Baldwin wrote:
J> > 4. Remove IFF_DRV_RUNNING check from ether_output().
<skip>
J> I think you can leave #4 in if the race doesn't hurt anything.
This check confuses people, is incorrect and useless. It confuses
people, because they think that the !IFF_DRV_RUNNING condition is
checked. It is incorrect because upper layer must not touch/look
at if_drv_flags. It is useless because the flag is checked without
driver mutex being acquired, and thus does not protect from anything.
Yesterday I have fixed panic in em(4) that was "protected" by this
check. The correct way is to check the flag in interface start
method, with driver mutex held.
--
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
More information about the cvs-src
mailing list