On Wed, Aug 11, 2010 at 12:33 PM, Dave Hylands <[email protected]> wrote:
> Hi Parbhu, > > Sending to the list this time. > > On Tue, Aug 10, 2010 at 11:07 PM, Prabhu nath <[email protected]> > wrote: > > Hi, > > > > I am facing a peculiar behaviour on Kernel version 2.6.34.1 > > (http://lxr.linux.no/#linux+v2.6.34.1). > > > > For my experimentation I just wanted to use the following two > kernel > > functions in my Kernel module > > > > 1. find_task_by_vpid > > (http://lxr.linux.no/#linux+v2.6.34.1/kernel/pid.c#L388) > > 2. irq_to_desc > > (http://lxr.linux.no/#linux+v2.6.34.1/kernel/irq/handle.c#L138) > > > > Since these two functions are not exported by the Kernel, I > > exported these functions, built the kernel and used in my kernel module. > > When I compiled, I got a warning "WARNING: "irq_to_desc" > > [/root/prabhu/KernelPrograms/irq/kmod.ko] undefined!" > > and when I inserted the module, I got error saying "kmod: > Unknown > > symbol irq_to_desc" > > irq_to_desc isn't a function, therefore it can't be exported. It's a macro. > irq_to_desc should be a function. To verify this, we can look into the symbol table in handle.o which specifies this as a function. Here is a snippet of the symbol table. * * 48: 0000024e 32 FUNC GLOBAL DEFAULT 1 replace_irq_desc 49: 00000000 0 NOTYPE GLOBAL DEFAULT UND radix_tree_lookup_slot * 50: 0000026e 12 FUNC GLOBAL DEFAULT 1 irq_to_desc* 51: 00000000 0 NOTYPE GLOBAL DEFAULT UND radix_tree_lookup 52: 00000413 31 FUNC GLOBAL DEFAULT 1 kstat_irqs_cpu 53: 00000432 40 FUNC GLOBAL DEFAULT 1 early_init_irq_lock_class 54: 00000032 298 FUNC GLOBAL DEFAULT 9 irq_to_desc_alloc_node 55: 00000000 0 NOTYPE GLOBAL DEFAULT UND warn_slowpath_fmt 56: 00000000 4 OBJECT GLOBAL DEFAULT 5 sparse_irq_lock -Prabhu >
