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-head mailing list