svn commit: r215544 - head/sys/kern
Attilio Rao
attilio at freebsd.org
Fri Nov 19 22:32:01 UTC 2010
2010/11/19 John Baldwin <jhb at freebsd.org>:
> On Friday, November 19, 2010 4:27:27 pm Attilio Rao wrote:
>> 2010/11/19 John Baldwin <jhb at freebsd.org>:
>> > On Friday, November 19, 2010 2:43:57 pm Attilio Rao wrote:
>> >> Author: attilio
>> >> Date: Fri Nov 19 19:43:56 2010
>> >> New Revision: 215544
>> >> URL: http://svn.freebsd.org/changeset/base/215544
>> >>
>> >> Log:
>> >> Scan the list in reverse order for the shutdown handlers of loaded modules.
>> >> This way, when there is a dependency between two modules, the handler of the
>> >> latter probed runs first.
>> >>
>> >> This is a similar approach as the modules are unloaded in the same
>> >> linkerfile.
>> >>
>> >> Sponsored by: Sandvine Incorporated
>> >> Submitted by: Nima Misaghian <nmisaghian at sandvine dot com>
>> >> MFC after: 1 week
>> >>
>> >> Modified:
>> >> head/sys/kern/kern_module.c
>> >>
>> >> Modified: head/sys/kern/kern_module.c
>> >> ==============================================================================
>> >> --- head/sys/kern/kern_module.c Fri Nov 19 18:59:35 2010 (r215543)
>> >> +++ head/sys/kern/kern_module.c Fri Nov 19 19:43:56 2010 (r215544)
>> >> @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$");
>> >>
>> >> static MALLOC_DEFINE(M_MODULE, "module", "module data structures");
>> >>
>> >> -typedef TAILQ_HEAD(, module) modulelist_t;
>> >> +typedef TAILQ_HEAD(modulelst, module) modulelist_t;
>> >
>> > Is modulelist already taken? If not, we should probably just retire
>> > 'modulelist_t' and replace it with 'struct modulelist'.
>>
>> Note that I used modulelst, not modulelist.
>> Probabilly, if you think the name may be still confusing, we can
>> pickup one another further.
>
> Yes, I'd much prefer 'modulelist' with the extra 'i' as it is more readable.
> If you go that route, I think you can drop modulelist_t since style(9)
> discourages foo_t types unless they are required by a standard.
I think that this patch should make it?
Thanks,
Attilio
Index: sys/kern/kern_module.c
===================================================================
--- sys/kern/kern_module.c (revision 215544)
+++ sys/kern/kern_module.c (working copy)
@@ -46,7 +46,6 @@
static MALLOC_DEFINE(M_MODULE, "module", "module data structures");
-typedef TAILQ_HEAD(modulelst, module) modulelist_t;
struct module {
TAILQ_ENTRY(module) link; /* chain together all modules */
TAILQ_ENTRY(module) flink; /* all modules in a file */
@@ -61,7 +60,7 @@
#define MOD_EVENT(mod, type) (mod)->handler((mod), (type), (mod)->arg)
-static modulelist_t modules;
+static TAILQ_HEAD(modulelist, module) modules;
struct sx modules_sx;
static int nextid = 1;
static void module_shutdown(void *, int);
@@ -101,7 +100,7 @@
return;
mtx_lock(&Giant);
MOD_SLOCK;
- TAILQ_FOREACH_REVERSE(mod, &modules, modulelst, link)
+ TAILQ_FOREACH_REVERSE(mod, &modules, modulelist, link)
MOD_EVENT(mod, MOD_SHUTDOWN);
MOD_SUNLOCK;
mtx_unlock(&Giant);
More information about the svn-src-all
mailing list