Hi,
I am trying to understand how module versioning works in Linux kernel.
If I have a moduleX.ko file with me, how do I determine if it would load successfully (using insmod or modprobe)? This is purely from versioning perspective. I assume that no other errors related to memory allocation, etc.
From the code, I could see the load_module () compares the CRC of the module against the CRC of "struct_module" symbol in the kernel.
When are these CRCs created. Using elfread, I could see that symbol "struct_module" is saved in the __versions section of moduleX.ko
I could not understand the EXPORT_SYMBOL code clearly. It seem to me that it creates a CRC (somehow) and saves to the kernel symbol table
(kallsyms?)
Please clarify to clear my doubt.
Thanks
Durga