NetBSD/sys
pgoyette 224f73d8d9 1. Add an allocator for 'struct module *' and use it instead of local
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.
2010-06-26 07:23:57 +00:00
..
altq
arch Um, fix botch in previous. 2010-06-26 03:49:52 +00:00
coda Clean up vnode lock operations pass 2: 2010-06-24 12:58:48 +00:00
common/bus_dma
compat Clean up vnode lock operations pass 2: 2010-06-24 12:58:48 +00:00
conf For the simple cases, augment device-major with information on how 2010-04-30 20:47:17 +00:00
crypto
ddb
dev Only 82571 shares port 0 of EEMNGCTL_CFGDONE. 2010-06-25 04:35:54 +00:00
dist handle STDC and GNUC inline semantic differences by providing and 2010-06-01 08:53:20 +00:00
external Fix a build failure. 2010-06-06 19:42:16 +00:00
fs tmpfs_statvfs: hold accounting lock, since tmpfs_pages_avail() and 2010-06-26 03:38:14 +00:00
gdbscripts
ipkdb
kern 1. Add an allocator for 'struct module *' and use it instead of local 2010-06-26 07:23:57 +00:00
lib fix typo 2010-05-11 21:50:35 +00:00
miscfs Clean up vnode lock operations pass 2: 2010-06-24 12:58:48 +00:00
modules Replace tmpfs_pool custom allocator code with a simpler layer for memory 2010-06-22 18:32:07 +00:00
net Correct the argument order of ifreqn2o conversion. 2010-06-12 08:12:03 +00:00
net80211
netatalk
netbt
netinet Make sure SYN_CACHE_TIMER_ARM() has been run before calling syn_cache_put() 2010-05-26 17:38:29 +00:00
netinet6 When choosing IPv6 source addresses, respect the ifaddr preference 2010-04-22 20:05:15 +00:00
netipsec
netisdn
netiso
netkey
netnatm
netsmb
nfs Clean up vnode lock operations pass 2: 2010-06-24 12:58:48 +00:00
opencrypto
rump Clean up vnode lock operations pass 2: 2010-06-24 12:58:48 +00:00
secmodel
stand
sys 1. Add an allocator for 'struct module *' and use it instead of local 2010-06-26 07:23:57 +00:00
ufs Undo last commit and don't try to lock vnodes in lfs_unmark_dirop() 2010-06-25 10:03:52 +00:00
uvm Clean up vnode lock operations pass 2: 2010-06-24 12:58:48 +00:00
Makefile