Merge tag 'trace-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux...
[platform/kernel/linux-starfive.git] / kernel / trace / bpf_trace.c
index bcf91bc..9a050e3 100644 (file)
@@ -2640,9 +2640,20 @@ kprobe_multi_link_prog_run(struct bpf_kprobe_multi_link *link,
        return err;
 }
 
-static void
+static int
 kprobe_multi_link_handler(struct fprobe *fp, unsigned long fentry_ip,
-                         struct pt_regs *regs)
+                         struct pt_regs *regs, void *data)
+{
+       struct bpf_kprobe_multi_link *link;
+
+       link = container_of(fp, struct bpf_kprobe_multi_link, fp);
+       kprobe_multi_link_prog_run(link, get_entry_ip(fentry_ip), regs);
+       return 0;
+}
+
+static void
+kprobe_multi_link_exit_handler(struct fprobe *fp, unsigned long fentry_ip,
+                              struct pt_regs *regs, void *data)
 {
        struct bpf_kprobe_multi_link *link;
 
@@ -2844,7 +2855,7 @@ int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *pr
                goto error;
 
        if (flags & BPF_F_KPROBE_MULTI_RETURN)
-               link->fp.exit_handler = kprobe_multi_link_handler;
+               link->fp.exit_handler = kprobe_multi_link_exit_handler;
        else
                link->fp.entry_handler = kprobe_multi_link_handler;