X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=probes%2Flttng.c;h=8a0dd4b8acdcefe06015d37d2599bb01ef7b907b;hb=cd4486798c2b046ea93b89439cd705e93c40b349;hp=c883429fa2e3401b83fb87181557213c008bdb40;hpb=9f36eaed6f91d5897924b551b44d1edd8cee00e2;p=lttng-modules.git diff --git a/probes/lttng.c b/probes/lttng.c index c883429f..8a0dd4b8 100644 --- a/probes/lttng.c +++ b/probes/lttng.c @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1) +/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) * * lttng.c * @@ -17,16 +17,16 @@ #include #include #include -#include +#include #define TP_MODULE_NOAUTOLOAD #define LTTNG_PACKAGE_BUILD #define CREATE_TRACE_POINTS -#define TRACE_INCLUDE_PATH instrumentation/events/lttng-module +#define TRACE_INCLUDE_PATH instrumentation/events #define TRACE_INCLUDE_FILE lttng #define LTTNG_INSTRUMENTATION -#include +#include /* Events written through logger are truncated at 1024 bytes */ #define LTTNG_LOGGER_COUNT_MAX 1024 @@ -93,6 +93,18 @@ static const struct file_operations lttng_logger_operations = { .write = lttng_logger_write, }; +/* + * Linux 5.6 introduced a separate proc_ops struct for /proc operations + * to decouple it from the vfs. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) +static const struct proc_ops lttng_logger_proc_ops = { + .proc_write = lttng_logger_write, +}; +#else +#define lttng_logger_proc_ops lttng_logger_operations +#endif + static struct miscdevice logger_dev = { .minor = MISC_DYNAMIC_MINOR, .name = "lttng-logger", @@ -104,7 +116,7 @@ int __init lttng_logger_init(void) { int ret = 0; - wrapper_vmalloc_sync_all(); + wrapper_vmalloc_sync_mappings(); /* /dev/lttng-logger */ ret = misc_register(&logger_dev); @@ -116,7 +128,7 @@ int __init lttng_logger_init(void) /* /proc/lttng-logger */ lttng_logger_dentry = proc_create_data(LTTNG_LOGGER_FILE, S_IRUGO | S_IWUGO, NULL, - <tng_logger_operations, NULL); + <tng_logger_proc_ops, NULL); if (!lttng_logger_dentry) { printk(KERN_ERR "Error creating LTTng logger proc file\n"); ret = -ENOMEM;