X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=probes%2Flttng-kprobes.c;h=6d2038e71d5f3244963b979297f141895605e2cc;hb=2230bf699820d6cc70492353600fcca409ea366c;hp=f4e4f2ea801e88f4b4d05bf4dd1472837a693799;hpb=79150a4903b5f31695fcd1d9655555ba6dc4bfa4;p=lttng-modules.git diff --git a/probes/lttng-kprobes.c b/probes/lttng-kprobes.c index f4e4f2ea..6d2038e7 100644 --- a/probes/lttng-kprobes.c +++ b/probes/lttng-kprobes.c @@ -23,11 +23,12 @@ #include #include #include -#include "../lttng-events.h" -#include "../wrapper/ringbuffer/frontend_types.h" -#include "../wrapper/vmalloc.h" -#include "../wrapper/irqflags.h" -#include "../lttng-tracer.h" +#include +#include +#include +#include +#include +#include static int lttng_kprobes_handler_pre(struct kprobe *p, struct pt_regs *regs) @@ -36,18 +37,18 @@ int lttng_kprobes_handler_pre(struct kprobe *p, struct pt_regs *regs) container_of(p, struct lttng_event, u.kprobe.kp); struct lttng_probe_ctx lttng_probe_ctx = { .event = event, - .interruptible = lttng_regs_irqs_disabled(regs), + .interruptible = !lttng_regs_irqs_disabled(regs), }; struct lttng_channel *chan = event->chan; struct lib_ring_buffer_ctx ctx; int ret; unsigned long data = (unsigned long) p->addr; - if (unlikely(!ACCESS_ONCE(chan->session->active))) + if (unlikely(!READ_ONCE(chan->session->active))) return 0; - if (unlikely(!ACCESS_ONCE(chan->enabled))) + if (unlikely(!READ_ONCE(chan->enabled))) return 0; - if (unlikely(!ACCESS_ONCE(event->enabled))) + if (unlikely(!READ_ONCE(event->enabled))) return 0; lib_ring_buffer_ctx_init(&ctx, chan->chan, <tng_probe_ctx, sizeof(data),