#include <common/kernel-ctl/kernel-ctl.h>
#include "kernel.h"
+#include "kern-modules.h"
/*
* Add context on a kernel channel.
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;
+}