When calling `lttng_syscalls_unregister()` we currently mark as
unregistered the wrong syscall probe type.
Concretely, when we unregister "sys_exit" we wrongfully mark that
sys_enter is unregistered and vice versa.
Given than currently entry and exit probes are always enabled together
(except on internal errors), the effect of this bug is not user-visible.
Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I64acf6a941a3d1fa1bf8be424f834ddb7fb92ace
if (!chan->sc_table)
return 0;
if (chan->sys_enter_registered) {
if (!chan->sc_table)
return 0;
if (chan->sys_enter_registered) {
- ret = lttng_wrapper_tracepoint_probe_unregister("sys_exit",
- (void *) syscall_exit_probe, chan);
+ ret = lttng_wrapper_tracepoint_probe_unregister("sys_enter",
+ (void *) syscall_entry_probe, chan);
if (ret)
return ret;
chan->sys_enter_registered = 0;
}
if (chan->sys_exit_registered) {
if (ret)
return ret;
chan->sys_enter_registered = 0;
}
if (chan->sys_exit_registered) {
- ret = lttng_wrapper_tracepoint_probe_unregister("sys_enter",
- (void *) syscall_entry_probe, chan);
+ ret = lttng_wrapper_tracepoint_probe_unregister("sys_exit",
+ (void *) syscall_exit_probe, chan);
if (ret)
return ret;
chan->sys_exit_registered = 0;
if (ret)
return ret;
chan->sys_exit_registered = 0;