*/
if (ret == 0 && event->event->instrumentation == LTTNG_KERNEL_SYSCALL) {
DBG2("Kernel event syscall creation success");
+ /*
+ * We use fd == -1 to ensure that we never trigger a close of fd
+ * 0.
+ */
+ event->fd = -1;
goto add_list;
}
int ret;
struct ltt_kernel_stream *lks;
- while ((ret = kernctl_create_stream(channel->fd)) > 0) {
+ while ((ret = kernctl_create_stream(channel->fd)) >= 0) {
lks = trace_kernel_create_stream();
if (lks == NULL) {
close(ret);
}
/* Validate version */
- if (version.version != KERN_MODULES_PRE_VERSION
- && version.version != KERN_MODULES_VERSION) {
+ if (version.major != KERN_MODULES_PRE_MAJOR
+ && version.major != KERN_MODULES_MAJOR) {
goto error_version;
}
- DBG2("Kernel tracer version validated (major version %d)", version.version);
+ DBG2("Kernel tracer version validated (major version %d)", version.major);
return 0;
error_version:
ERR("Kernel major version %d is not compatible (supporting <= %d)",
- version.version, KERN_MODULES_VERSION)
+ version.major, KERN_MODULES_MAJOR)
ret = -1;
error: