On Tue, May 12, 2020 at 03:19:11PM +0300, Adrian Hunter wrote: > @@ -202,6 +207,13 @@ static int collect_one_slot(struct kprobe_insn_page > *kip, int idx) > * next time somebody inserts a probe. > */ > if (!list_is_singular(&kip->list)) { > + /* > + * Record perf ksymbol unregister event before removing > + * the page. > + */ > + perf_event_ksymbol(PERF_RECORD_KSYMBOL_TYPE_OOL, > + (u64)kip->insns, PAGE_SIZE, true, > + kip->cache->sym); > list_del_rcu(&kip->list); > synchronize_rcu(); > kip->cache->free(kip->insns);
My manual build script haz complaints: i386-defconfig ../kernel/kprobes.c: In function ‘__get_insn_slot’: ../kernel/kprobes.c:190:51: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] perf_event_ksymbol(PERF_RECORD_KSYMBOL_TYPE_OOL, (u64)kip->insns, ^ ../kernel/kprobes.c: In function ‘collect_one_slot’: ../kernel/kprobes.c:215:9: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] (u64)kip->insns, PAGE_SIZE, true, ^ FAIL Now, there's a ton of such warnings elsewhere in the tree, but still I feel we should perhaps strive for a clean build.