2012/8/16 Amarnath Revanna <amarnath.revanna@gmail.com>
Hi Vijay,

Is this a loadable kernel module or a built-in module?
If it is a loadable module, everything still remains in the memory without being freed.

Functions and data defined with __init gets freed after their execution only if these are part of built-in kernel modules.

In your case, if the module is a loadable one, you can still access the print_k() from hello_exit() as its still residing in memory.

Regards,
-Amar

   Hi Amar

       Thank you  very much  for reply. I often write loadable modules,but know little about 
built-in modules,can you tell something about built-in modules? or,how i can take a built-in
module into the kernel?


On Thu, Aug 16, 2012 at 5:23 PM, Vijay Chauhan <kernel.vijay@gmail.com> wrote:
Hi,

On Tue, Aug 14, 2012 at 9:34 AM, Mulyadi Santosa
<mulyadi.santosa@gmail.com> wrote:
> Hi.. :)
>
> On Tue, Aug 14, 2012 at 9:14 AM, ÍõÕÜ <wangzhe5004@gmail.com> wrote:
>> i use the __init for function print_k.
>> in my opinion  after the fisrt invoking the print_k in the hello_init.
>> the memory of print_k will be freed,and the second invoking will
>> not be executed.but the result of second invoking is executing .
>>
>> why?
>
> because you're still in module_init.... :)
>
> right after modul init stage is done, _init marked function is thrown away...


Even if we call  print_k() function inside hello_exit, it still works.
At that point __init hello_init execution is over. How its still
working?


Regards,
Vijay

>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies