224f73d8d9
allocations. 2. Add a new member mod_flags to the 'struct module *' and define MODFLG_MUST_FORCE. If this flag is set and the entry is on the list of builtins, it means that the module has been explicitly unloaded and any re-loads will require the MODCTL_LOAD_FORCE flag. Provide a module_require_force() method to set this flag; once set, it should never be unset. 3. Rename original module_init2() to module_start_unload_thread() to be more descriptive of what it does. 4. Add a new module_builtin_require_force() routine that sets the MODFLG_MUST_FORCE flag for any module that has not yet successfully been initialized. Call it after module_init_class(MODULE_CLASS_ANY) to disable remaining built-in modules. This makes built-in versions of the xxxVERBOSE modules work once more, resolving breakage reported by jruoho@ and njoly@. Discussed on tech-kern, and comments and suggestions implemented. No additional discussion for last week. Tested only on amd64 systems, but there's nothing here that should be port- or architecture-specific (no more specific than existing module implementation) so others should not break. |
||
---|---|---|
.. | ||
altq | ||
arch | ||
coda | ||
common/bus_dma | ||
compat | ||
conf | ||
crypto | ||
ddb | ||
dev | ||
dist | ||
external | ||
fs | ||
gdbscripts | ||
ipkdb | ||
kern | ||
lib | ||
miscfs | ||
modules | ||
net | ||
net80211 | ||
netatalk | ||
netbt | ||
netinet | ||
netinet6 | ||
netipsec | ||
netisdn | ||
netiso | ||
netkey | ||
netnatm | ||
netsmb | ||
nfs | ||
opencrypto | ||
rump | ||
secmodel | ||
stand | ||
sys | ||
ufs | ||
uvm | ||
Makefile |