goto register_error;
break;
case LTTNG_KERNEL_KPROBES:
- event->u.kprobe.kp.pre_handler = lttng_kprobes_handler_pre;
- event->u.kprobe.symbol_name =
- kzalloc(LTTNG_KPROBE_SYM_NAME_LEN * sizeof(char),
- GFP_KERNEL);
- if (!event->u.kprobe.symbol_name)
- goto register_error;
- memcpy(event->u.kprobe.symbol_name,
- event_param->u.kprobe.symbol_name,
- LTTNG_KPROBE_SYM_NAME_LEN * sizeof(char));
- event->u.kprobe.kp.symbol_name =
- event->u.kprobe.symbol_name;
- event->u.kprobe.kp.offset = event_param->u.kprobe.offset;
- event->u.kprobe.kp.addr = (void *) event_param->u.kprobe.addr;
- ret = register_kprobe(&event->u.kprobe.kp);
- if (ret) {
- kfree(event->u.kprobe.symbol_name);
+ ret = lttng_kprobes_register(name,
+ event_param->u.kprobe.symbol_name,
+ event_param->u.kprobe.offset,
+ event_param->u.kprobe.addr,
+ event);
+ if (ret)
goto register_error;
- }
break;
default:
WARN_ON_ONCE(1);
return ret;
break;
case LTTNG_KERNEL_KPROBES:
- unregister_kprobe(&event->u.kprobe.kp);
- kfree(event->u.kprobe.symbol_name);
+ lttng_kprobes_unregister(event);
ret = 0;
break;
default: