svn commit: r215348 - head/sys/dev/mii
Marius Strobl
marius at FreeBSD.org
Mon Nov 15 21:41:46 UTC 2010
Author: marius
Date: Mon Nov 15 21:41:45 2010
New Revision: 215348
URL: http://svn.freebsd.org/changeset/base/215348
Log:
Return from mii_attach() after calling bus_generic_attach(9) on the device_t
of the MAC driver in order to attach miibus(4) on the first pass instead of
falling through to also calling it on the device_t of miibus(4). The latter
code flow was intended to attach the PHY drivers the same way regardless of
whether it's the first or a repeated pass, modulo the bus_generic_attach()
call in miibus_attach() which shouldn't be there. However, it turned out
that these variants cause miibus(4) to be attached twice under certain
conditions when using MAC drivers as modules.
Submitted by: yongari
MFC after: 3 days
Modified:
head/sys/dev/mii/mii.c
Modified: head/sys/dev/mii/mii.c
==============================================================================
--- head/sys/dev/mii/mii.c Mon Nov 15 21:41:32 2010 (r215347)
+++ head/sys/dev/mii/mii.c Mon Nov 15 21:41:45 2010 (r215348)
@@ -438,6 +438,9 @@ mii_attach(device_t dev, device_t *miibu
rv = bus_generic_attach(dev);
if (rv != 0)
goto fail;
+
+ /* Attaching of the PHY drivers is done in miibus_attach(). */
+ return (0);
}
rv = bus_generic_attach(*miibus);
if (rv != 0)
More information about the svn-src-all
mailing list