projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bad return value on enable syscalls making it freeze
[lttng-tools.git]
/
lttng-sessiond
/
event.c
diff --git
a/lttng-sessiond/event.c
b/lttng-sessiond/event.c
index 407f8441c60bb7ffd8bae71448498879738b47b3..247a4c6d7c7cae013d586439a9194561fbcf751e 100644
(file)
--- a/
lttng-sessiond/event.c
+++ b/
lttng-sessiond/event.c
@@
-161,14
+161,16
@@
int event_kernel_enable_all_tracepoints(struct ltt_kernel_session *ksession,
{
int size, i, ret;
struct ltt_kernel_event *kevent;
{
int size, i, ret;
struct ltt_kernel_event *kevent;
- struct lttng_event *event_list;
+ struct lttng_event *event_list
= NULL
;
/* For each event in the kernel session */
cds_list_for_each_entry(kevent, &kchan->events_list.head, list) {
/* For each event in the kernel session */
cds_list_for_each_entry(kevent, &kchan->events_list.head, list) {
- ret = kernel_enable_event(kevent);
- if (ret < 0) {
- /* Enable failed but still continue */
- continue;
+ if (kevent->enabled == 0) {
+ ret = kernel_enable_event(kevent);
+ if (ret < 0) {
+ /* Enable failed but still continue */
+ continue;
+ }
}
}
}
}
@@
-191,6
+193,7
@@
int event_kernel_enable_all_tracepoints(struct ltt_kernel_session *ksession,
}
}
free(event_list);
}
}
free(event_list);
+
ret = LTTCOMM_OK;
end:
return ret;
ret = LTTCOMM_OK;
end:
return ret;
@@
-212,8
+215,14
@@
int event_kernel_enable_all_syscalls(struct ltt_kernel_session *ksession,
ret = kernel_create_event(&event, kchan);
if (ret < 0) {
ret = kernel_create_event(&event, kchan);
if (ret < 0) {
+ if (ret == -EEXIST) {
+ ret = LTTCOMM_KERN_EVENT_EXIST;
+ } else {
+ ret = LTTCOMM_KERN_ENABLE_FAIL;
+ }
goto end;
}
goto end;
}
+
ret = LTTCOMM_OK;
end:
return ret;
ret = LTTCOMM_OK;
end:
return ret;
@@
-260,10
+269,10
@@
int event_ust_enable_tracepoint(struct ltt_ust_session *usess, int domain,
{
if (to_create) {
/* Create event on all UST registered apps for session */
{
if (to_create) {
/* Create event on all UST registered apps for session */
- ret = ust_app_create_event_
all
(usess, uchan, uevent);
+ ret = ust_app_create_event_
glb
(usess, uchan, uevent);
} else {
/* Enable event on all UST registered apps for session */
} else {
/* Enable event on all UST registered apps for session */
- ret = ust_app_enable_event_
all
(usess, uchan, uevent);
+ ret = ust_app_enable_event_
glb
(usess, uchan, uevent);
}
if (ret < 0) {
}
if (ret < 0) {
This page took
0.023276 seconds
and
4
git commands to generate.