> 
> +struct early_kprobe_slot {
> +     struct optimized_kprobe op;
> +};
> +
[...]
> 
>  /* Free optimized instructions and optimized_kprobe */
> +static int ek_free_early_kprobe(struct early_kprobe_slot *slot);

[2] How is it implemented? In subsequent patches?

>  static void free_aggr_kprobe(struct kprobe *p)
>  {
>       struct optimized_kprobe *op;
> +     struct early_kprobe_slot *ep;
> 
>       op = container_of(p, struct optimized_kprobe, kp);
>       arch_remove_optimized_kprobe(op);
>       arch_remove_kprobe(p);
> -     kfree(op);
> +     ep = container_of(op, struct early_kprobe_slot, op);
> +     if (likely(!ek_free_early_kprobe(ep)))
> +             kfree(op);

[1] s/op/ep/   yes?
>  }
> 
[...]
> +#else
> +static int register_early_kprobe(struct kprobe *p) { return -ENOSYS; }
> +static int ek_free_early_kprobe(struct early_kprobe_slot *slot) { return 0; }

[3] Compile-able with CONFIG_EARLY_KPROBES enabled?

> +static void convert_early_kprobes(void) {};
> +#endif
> --
> 1.8.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to