static int probe_event_enable(struct ftrace_event_call *call) { struct trace_probe *tp = (struct trace_probe *)call->data; tp->flags |= TP_FLAG_TRACE; if (probe_is_return(tp)) return enable_kretprobe(&tp->rp); else return enable_kprobe(&tp->rp.kp); }
static int stapkp_enable_probe(struct stap_dwarf_probe *sdp) { int ret = 0; dbug_otf("enabling (k%sprobe) pidx %zu\n", sdp->return_p ? "ret" : "", sdp->probe->index); ret = sdp->return_p ? enable_kretprobe(&sdp->kprobe->u.krp) : enable_kprobe(&sdp->kprobe->u.kp); if (ret != 0) { stapkp_unregister_probe(sdp); dbug_otf("failed to enable (k%sprobe) pidx %zu (rc %d)\n", sdp->return_p ? "ret" : "", sdp->probe->index, ret); } return ret; }