DF-4930 / fix.diff
--- a/sys/dev/netif/mii_layer/atphy.c +++ b/sys/dev/netif/mii_layer/atphy.c @@ -136,12 +136,11 @@ atphy_attach(device_t dev) sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR); device_printf(dev, " "); + + /* Always add media: mii_phy_add_media() installs the IFM_NONE + * fallback entry even for a PHY reporting no capabilities, which + * keeps miibus_mediainit()'s ifmedia_set() (mii.c) and the + * ifm_cur dereferences in atphy_service() safe. */ if ((sc->mii_capabilities & BMSR_MEDIAMASK) == 0 && (sc->mii_extcapabilities & EXTSR_MEDIAMASK) == 0) kprintf("no media present"); - else - mii_phy_add_media(sc); + mii_phy_add_media(sc); kprintf("\n"); atphy_reset(sc); |