Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F108557796
D47994.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
842 B
Referenced Files
None
Subscribers
None
D47994.diff
View Options
diff --git a/sys/contrib/dev/iwlwifi/iwl-drv.c b/sys/contrib/dev/iwlwifi/iwl-drv.c
--- a/sys/contrib/dev/iwlwifi/iwl-drv.c
+++ b/sys/contrib/dev/iwlwifi/iwl-drv.c
@@ -1749,7 +1749,20 @@
goto out_unbind;
}
} else {
+#if defined(__linux__)
request_module_nowait("%s", op->name);
+#elif defined(__FreeBSD__)
+ /*
+ * In FreeBSD if_iwlwifi contains all drv modules in a single
+ * module. SYSINIT will do the job later. We cannot call
+ * into kern_kldload() while being called from kern_kldload():
+ * LinuxKPI request_module[_nowait] will hang hard.
+ * Given this is request_module_nowait() we can simply skip it.
+ */
+ if (bootverbose)
+ printf("%s: module '%s' not yet available; will be"
+ "initialized in a moment\n", __func__, op->name);
+#endif
}
mutex_unlock(&iwlwifi_opmode_table_mtx);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Jan 27, 8:04 AM (2 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15240752
Default Alt Text
D47994.diff (842 B)
Attached To
Mode
D47994: iwlwifi: avoid (hard) hang on loading module
Attached
Detach File
Event Timeline
Log In to Comment