cpufreq: mediatek: allow modular build

Viresh Kumar viresh.kumar at linaro.org
Fri Sep 11 03:19:34 PDT 2015


On 11-09-15, 11:13, Russell King - ARM Linux wrote:
> Yes, but it's not that simple.
> 
> A module with no module_init() and no module_exit() is what's called a
> library module, which can be inserted, and later removed provided no
> other module depends on anything the library module exports.
> 
> A module with a module_init() but no module_exit() is one which can be
> inserted, but never removed.
> 
> A module with a module_init() and a module_exit() can be inserted, and
> later removed in much the same way as the library module mentioned above.
> 
> See kernel/module.c:
> 
>         /* If it has an init func, it must have an exit func to unload */
>         if (mod->init && !mod->exit) {
>                 forced = try_force_unload(flags);
>                 if (!forced) {
>                         /* This module can't be removed */
>                         ret = -EBUSY;
>                         goto out;
>                 }
>         }
> 
> and
> 
>         if (mod->init != NULL && mod->exit == NULL) {
>                 printed_something = 1;
>                 seq_puts(m, "[permanent],");
>         }

Thanks for that, really appreciate it.

And now I realize that Arnd was correct to start with :)

-- 
viresh



More information about the linux-arm-kernel mailing list