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



>

Reply via email to