Fix kernel version to only test major version
[lttng-tools.git] / src / bin / lttng-sessiond / kernel.c
index 2ebd5acbdd79dec5f7441362ccf89bd925c74c95..d9e047fc3f5cdcc50a72ea68d0a7f29fa49b159b 100644 (file)
 #include <string.h>
 #include <unistd.h>
 
-#include <common/kernel-ctl/kernel-ctl.h>
-#include <common/lttngerr.h>
 #include <common/common.h>
+#include <common/kernel-ctl/kernel-ctl.h>
 
 #include "kernel.h"
+#include "kern-modules.h"
 
 /*
  * Add context on a kernel channel.
@@ -607,3 +607,34 @@ error_fp:
 error:
        return -1;
 }
+
+/*
+ * Get kernel version and validate it.
+ */
+int kernel_validate_version(int tracer_fd)
+{
+       int ret;
+       struct lttng_kernel_tracer_version version;
+
+       ret = kernctl_tracer_version(tracer_fd, &version);
+       if (ret < 0) {
+               ERR("Failed at getting the lttng-modules version");
+               goto error;
+       }
+
+       /* Validate version */
+       if (version.version > KERN_MODULES_VERSION) {
+               goto error_version;
+       }
+
+       DBG2("Kernel tracer version validated (major version %d)", version.version);
+       return 0;
+
+error_version:
+       ERR("Kernel major version %d is not compatible (supporting <= %d)",
+                       version.version, KERN_MODULES_VERSION)
+       ret = -1;
+
+error:
+       return ret;
+}
This page took 0.024362 seconds and 4 git commands to generate.