diff options
Diffstat (limited to 'kernel/trace/trace_probe.h')
| -rw-r--r-- | kernel/trace/trace_probe.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/trace/trace_probe.h b/kernel/trace/trace_probe.h index 719604855279..842383fbc03b 100644 --- a/kernel/trace/trace_probe.h +++ b/kernel/trace/trace_probe.h @@ -12,6 +12,7 @@ #include <linux/bitops.h> #include <linux/btf.h> +#include <linux/cleanup.h> #include <linux/kprobes.h> #include <linux/limits.h> #include <linux/perf_event.h> @@ -439,6 +440,14 @@ extern void traceprobe_free_probe_arg(struct probe_arg *arg); * this MUST be called for clean up the context and return a resource. */ void traceprobe_finish_parse(struct traceprobe_parse_context *ctx); +static inline void traceprobe_free_parse_ctx(struct traceprobe_parse_context *ctx) +{ + traceprobe_finish_parse(ctx); + kfree(ctx); +} + +DEFINE_FREE(traceprobe_parse_context, struct traceprobe_parse_context *, + if (_T) traceprobe_free_parse_ctx(_T)) extern int traceprobe_split_symbol_offset(char *symbol, long *offset); int traceprobe_parse_event_name(const char **pevent, const char **pgroup, |
