diff --git a/sys/net/if_media.c b/sys/net/if_media.c --- a/sys/net/if_media.c +++ b/sys/net/if_media.c @@ -290,6 +290,16 @@ } ifmr->ifm_mask = ifm->ifm_mask; ifmr->ifm_status = 0; + /* + * Don't panic if ifm_status isn't yet setup due to + * driver/miibus probe ordering. This can happen if + * a kldload'ed driver doesn't set the module order + * to setup miibus early enough. + * + * See kern/286530 for more information. + */ + if (ifm->ifm_status == NULL) + return (EINVAL); (*ifm->ifm_status)(ifp, ifmr); /*