• Ananth N Mavinakayanahalli's avatar
    [PATCH] Kprobes: Make kprobe modules more portable · 3a872d89
    Ananth N Mavinakayanahalli authored
    In an effort to make kprobe modules more portable, here is a patch that:
    
    o Introduces the "symbol_name" field to struct kprobe.
      The symbol->address resolution now happens in the kernel in an
      architecture agnostic manner. 64-bit powerpc users no longer have
      to specify the ".symbols"
    o Introduces the "offset" field to struct kprobe to allow a user to
      specify an offset into a symbol.
    o The legacy mechanism of specifying the kprobe.addr is still supported.
      However, if both the kprobe.addr and kprobe.symbol_name are specified,
      probe registration fails with an -EINVAL.
    o The symbol resolution code uses kallsyms_lookup_name(). So
      CONFIG_KPROBES now depends on CONFIG_KALLSYMS
    o Apparantly kprobe modules were the only legitimate out-of-tree user of
      the kallsyms_lookup_name() EXPORT. Now that the symbol resolution
      happens in-kernel, remove the EXPORT as suggested by Christoph Hellwig
    o Modify tcp_probe.c that uses the kprobe interface so as to make it
      work on multiple platforms (in its earlier form, the code wouldn't
      work, say, on powerpc)
    Signed-off-by: default avatarAnanth N Mavinakayanahalli <ananth@in.ibm.com>
    Signed-off-by: default avatarPrasanna S Panchamukhi <prasanna@in.ibm.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    3a872d89
kprobes.c 19 KB