Re: [PATCH V7 03/15] kprobes: Add symbols for kprobe insn pages

From: Peter Zijlstra
Date: Wed May 27 2020 - 13:46:13 EST


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.