Page MenuHomeFreeBSD

D50136.id155016.diff
No OneTemporary

D50136.id155016.diff

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
@@ -59,6 +59,7 @@
#include <sys/sysctl.h>
#include <net/if.h>
+#include <net/if_var.h> /* for if_printf() */
#include <net/if_media.h>
/*
@@ -290,6 +291,22 @@
}
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) {
+ if_printf(ifp,
+ "%s: ifm_status is NULL; please fix miibus/driver"
+ " order\n",
+ __func__);
+ return (EDOOFUS);
+ }
(*ifm->ifm_status)(ifp, ifmr);
/*

File Metadata

Mime Type
text/plain
Expires
Sun, Nov 16, 9:36 PM (16 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25390849
Default Alt Text
D50136.id155016.diff (823 B)

Event Timeline