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)
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to