On Thursday 21 September 2006 14:12, Intron is my alias on the Internet wrote:
> Please have a look at the function linker_reference_module() in
> /sys/kern/kern_linker.c of 7.0-CURRENT. If the module is loaded on demand,
> why not increase its reference counter after loading? In my opinion,
> linker_reference_module() behaves differently from linker_load_file().

This is because a new kld loaded via linker_load_module() starts off
with a refcount of 1.  Thus, if you do:

        linker_reference_module(...);
        ...
        linker_release_module(...);

Then with the current code the release_module() call drops the reference
count to 0 and the module is unloaded.  This is the desired operation for
reference_module/release_module.  This model is commonly used in the kernel.
For example, when creating a credential, one just does 'crget()' and later
a 'crfree()' to free it instead of doing 'crget(); crhold()' to create one.

-- 
John Baldwin
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to