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.

Reply via email to