Re: Using ipv6 stack functions in kernel module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Łukasz,

On Sun, Jan 22, 2012 at 4:01 AM, Łukasz Czyż <perlowy.dzem@xxxxxxxxx> wrote:
> Hello All
>
> I am wirting kernel module and I want to call some ipv6 stack function
> from it (like ip6_forward). I am including proper header files so
> compiler detects that functions, compiles module, but at the end it
> returns warning like that:
>
> WARNING: "ip6_forward" [/path/to/my/module.ko] undefined!
>
> Resulting module cannot be inserted as I get following output:
>
> insmod: error inserting 'module.ko': -1 Unknown symbol in module
>
> I guess that this issue takes place because corresponding macro
> EXPORT_SYMBOL(ip6_forward) is not defined in kernel source. But it
> seems strange to me that such a fundamental functions cannot be used
> by module writers. What is more, I found on net some exemplary module
> source and I found ip6_forward function called from it.

So if you're using a module, you can only call functions which are
either declared inline, or which are EXPORT_SYMBOL'd.

If you statically link your module into the kernel, then you can call
any function which is available.

> I defined "GPL" as license of my module and I try to compile it under
> 3.0.4 kernel version.

This would only impact symbols which were declared EXPORT_SYMBOL_GPL.

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.davehylands.com

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



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux