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

From: Adrian Hunter
Date: Thu May 28 2020 - 04:01:13 EST


On 27/05/20 8:43 pm, Peter Zijlstra 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.
>

Yes, sorry about that.