Do you know the bug of EXPORT_SYMBOL()
Greg KH
greg at kroah.com
Fri Jul 24 13:10:18 EDT 2015
On Fri, Jul 24, 2015 at 01:49:42PM +0800, Navy wrote:
> Hi
> To my understanding, EXPORT_SYMBOL() is used to export a symbol in
> kernel/modules. The the address of the all sysbols is in /proc/kallsyms.
> Only symbols exported by EXPORT_SYMBOL() is listed its CRC information
> in Module.symvers. So I think the CRC is the key to export a symbol.
> I do an experiment:
>
> ---mdir
> |
> |---Mod1
> | |---mod1.c
> | |---Makefile
> |
> |---Mod2
> |---mod2.c
> |---Makefile
>
> mod1.c define function *void myfunc(void)* and exported by EXPORT_SYMBOL()
> and the CRC info is showed in Module.symvers. mod2.c reference *myfunc* and
> compiled successfully. BUT when mod2.ko is insmoded, "unknown symbol" is
> complained. mod2.ko CAN'T BE INSMOD.
Use 'modprobe' after "properly" installing the kernel modules to the
correct location, and then all will be fine.
greg k-h
More information about the Kernelnewbies
mailing list