John S O'Sullivan
20 years ago
Hi,
I have read the FAQ at
http://people.redhat.com/zaitcev/notes/rusty_mod_faq.news and looked at a
lot of drivers in the kernel but I am still confused about the use of
try_module_get() and exported symbols.
As I understand it try_module_get() should be used in place of the
depreciated MOD_COUNTS so if I have a module moduleA. I use
try_module_get(THIS_MODULE) in the open function and module_put(THIS_MODULE)
in the release funtion.
What do I need to do in the following scenario:
moduleA has a function foo() which I export with EXPORT_SYMBOL(foo). I now
want to call that function foo() from a second module moduleB.
Do I have to wrap the call with try_module_get(moduleA) for example
moduleB_calling_foo_in_moduleA
{
if (try_module_get(moduleA))
foo();
}
If so how do I get a reference to moduleA from within moduleB?
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/
I have read the FAQ at
http://people.redhat.com/zaitcev/notes/rusty_mod_faq.news and looked at a
lot of drivers in the kernel but I am still confused about the use of
try_module_get() and exported symbols.
As I understand it try_module_get() should be used in place of the
depreciated MOD_COUNTS so if I have a module moduleA. I use
try_module_get(THIS_MODULE) in the open function and module_put(THIS_MODULE)
in the release funtion.
What do I need to do in the following scenario:
moduleA has a function foo() which I export with EXPORT_SYMBOL(foo). I now
want to call that function foo() from a second module moduleB.
Do I have to wrap the call with try_module_get(moduleA) for example
moduleB_calling_foo_in_moduleA
{
if (try_module_get(moduleA))
foo();
}
If so how do I get a reference to moduleA from within moduleB?
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/