lkml.org 
[lkml]   [2020]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH V7 03/15] kprobes: Add symbols for kprobe insn pages
    On Wed, 27 May 2020 19:43:45 +0200
    Peter Zijlstra <peterz@infradead.org> wrote:

    > On Tue, May 12, 2020 at 03:19:10PM +0300, Adrian Hunter wrote:
    > > @@ -2179,6 +2181,49 @@ int kprobe_add_area_blacklist(unsigned long start, unsigned long end)
    > > return 0;
    > > }
    > >
    > > +int kprobe_cache_get_kallsym(struct kprobe_insn_cache *c, unsigned int *symnum,
    > > + unsigned long *value, char *type, char *sym)
    > > +{
    > > + struct kprobe_insn_page *kip;
    > > + int ret = -ERANGE;
    > > +
    > > + rcu_read_lock();
    > > + list_for_each_entry_rcu(kip, &c->pages, list) {
    > > + if ((*symnum)--)
    > > + continue;
    > > + strlcpy(sym, c->sym, KSYM_NAME_LEN);
    > > + *type = 't';
    > > + *value = (unsigned long)kip->insns;
    > > + ret = 0;
    > > + break;
    > > + }
    > > + rcu_read_unlock();
    > > +
    > > + return ret;
    > > +}
    >
    > This fails on sparc64-defconfig.
    >
    > In file included from ../include/linux/kprobes.h:19:0,
    > from ../kernel/kprobes.c:21:
    > ../kernel/kprobes.c: In function 'kprobe_cache_get_kallsym':
    > ../include/linux/rculist.h:382:49: error: dereferencing pointer to incomplete type 'struct kprobe_insn_page'
    >
    > Please provide a new patch.

    Ah, yes. Since some archs doesn't require special out-of-line
    trampoline, we need to check __ARCH_WANT_KPROBES_INSN_SLOT,
    and if not, kprobe_cache_get_kallsym() has do nothing and
    return -ERANGE.

    Thank you,


    --
    Masami Hiramatsu <mhiramat@kernel.org>

    \
     
     \ /
      Last update: 2020-05-28 02:32    [W:3.614 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site