Hey folks,
I'm attempting to load a module whose code has a call to kiobuf_init. The
function kiobuf_init is defined in fs/iobuf.c BUT not forward declared in
include/linux/iobuf.h (as it was in 2.4.3-12). But the kernel compiles
anyway. The module code compiles as well -- even if I do ignore the
undefined symbol message at compile time. However, when I try to insmod the
module I get the dreaded message
module.o: unresolved symbol kiobuf_init
Now here's the funny thing:
The /boot/System.map file lists it as
c014d410 t kiobuf_init
But there's nothing in the /proc/ksyms
I've stepped through the installation process of insmod and noted that there
are 1474 symbols in ksyms and none of them is kiobuf_init. So, obviously
when it checks for unresolved symbols it doesn't find it.
I've recompiled the kernel, the module source and even forward declared the
function, but nothing seems to work!
What could I be doing wrong???? I've been working this problem for several
days now without success!
Thanks,
Tony.
It was a dark and stormy night. Suddenly
"ANTHONY DELSORBO" <[email protected]> began to type furiously:
> I'm attempting to load a module whose code has a call to kiobuf_init.
Don't do that. Use "alloc_kiobuf()" and "free_kiobuf()" instead. "Kiobuf_init"
is a worker-bee routine that mere mortals should not use.
---------------------------------------------+-----------------------------
Tommy Reynolds | mailto: <[email protected]>
Red Hat, Inc., Embedded Development Services | Phone: +1.256.704.9286
307 Wynn Drive NW, Huntsville, AL 35805 USA | FAX: +1.256.837.3839
Senior Software Developer | Mobile: +1.919.641.2923