Hi Krishna,
On Mon, Jul 20, 2009 at 8:10 PM, er krishna <[email protected]> wrote: > > > > Dear All, > > > > I have one simple problem in exporting the function. Everything is fine, > but its not working as per the expectation. Actually I have to export some > function from fs/dropcache.c, but it is not working as per the expectataion, > [ I am able to export any function from other files like fs/buffer.c and > block/genhd.c but dropcache.c creates a problem] .I am attaching the file. > Just once check & please tell if something is missing, what I have done is > as follows: > > > > I have exported three functions from fs/dropcaches.c by making their > function declaration in linux/mm.h, compiled the corresponding 2.6.26 > kernel & got their entries in System.map file as follows: > > > c0174d98 T drop_slab > c0174db2 T drop_pagecache > c0174ea7 T drop_caches_sysctl_handler > > These entries are quite different from the actual exported functions from > other files, it has only T option. Can antbody elaborate what is the meaning > of these options like T, t, r , u and so on? > > I have booted with same 2.6.26 kernel. I included linux/mm.h and all the > above three function in my module done make & found following warnings in > compilation & following error message in insmod due to some linking error: > > > [r...@centos2 kernel]# make > make -C /lib/modules/2.6.26/build M=/root/kernel modules > make[1]: Entering directory `/root/Desktop/linux-2.6.26' > Building modules, stage 2. > MODPOST 2 modules > WARNING: "drop_slab" [/root/kernel/dropcache.ko] undefined! > WARNING: "drop_pagecache" [/root/kernel/dropcache.ko] undefined! > WARNING: "drop_caches_sysctl_handler" [/root/kernel/dropcache.ko] > undefined! > make[1]: Leaving directory `/root/Desktop/linux-2.6.26' > [r...@centos2 kernel]# > [r...@centos2 kernel]# > [r...@centos2 kernel]# insmod dropcache.ko > insmod: error inserting 'dropcache.ko': -1 Unknown symbol in module > Do a dmesg and provide the results? You will see that which symbol still remains unresolved. May be you need to export some more of them. > [r...@centos2 kernel]# > [r...@centos2 kernel]# > > > Any idea how to trace it & what is missing, as I got all the exported > entries in System.map file & I have included the function declaration file > linux/mm.h on the same compiled kernel, it should do the things in right > manner. > > Please suggest, If I am missing something or you want any more information. > I am attaching my kernel module and these are some more snippet : > [r...@centos2 kernel]# uname -a > Linux CENTOS2 2.6.26 #1 SMP Sun Jul 19 10:54:05 IST 2009 i686 i686 i386 > GNU/Linux > [r...@centos2 kernel]# > [r...@centos2 kernel]# tail -1 /root/Desktop/linux-2.6.26/fs/drop_caches.c > EXPORT_SYMBOL(drop_caches_sysctl_handler); > [r...@centos2 kernel]# > [r...@centos2 kernel]# > > > > Regards, Sandeep. “To learn is to change. Education is a process that changes the learner.” > > > > > > Thanks and Best Regards, > ------------------------ > Krishna Kumar > > > >
