DF-5077 / fix.diff
--- a/sys/dev/netif/mii_layer/mii.c 2026-09-25 18:16:01.683350318 +0000 +++ b/sys/dev/netif/mii_layer/mii.c 2026-09-25 18:16:05.835295996 +0000 @@ -241,6 +241,19 @@ if (media == (IFM_ETHER|IFM_AUTO)) break; } + /* + * DF-5001: PHY drivers whose BMSR/EXTSR report no media capability + * add no media at all ("no media present" branch: atphy, ciphy, + * jmphy, truephy, ukphy, ...). If neither they nor the parent added + * anything, the list is empty, `media' is still 0, and + * ifmedia_set() would panic("ifmedia_set") on the no-match + * (sys/net/if_media.c). Always provide an autoselect default so the + * bus attaches (degraded) instead of taking the system down. + */ + if (m == NULL && LIST_EMPTY(&mii->mii_media.ifm_list)) { + ifmedia_add(&mii->mii_media, IFM_ETHER|IFM_AUTO, 0, NULL); + media = IFM_ETHER|IFM_AUTO; + } ifmedia_set(&mii->mii_media, media); } |