X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=probes%2Flttng.c;h=d20905ebb22ea0c72938d2e76af12fff6ca8e713;hb=b78104db53f97c10add30016e365855a26f6e01e;hp=449d8a5cb7f4f5192604d1689ae73935e3bc1e97;hpb=4d328377868e2f8fc2027c2492c3cd53615dffdc;p=lttng-modules.git diff --git a/probes/lttng.c b/probes/lttng.c index 449d8a5c..d20905eb 100644 --- a/probes/lttng.c +++ b/probes/lttng.c @@ -1,27 +1,14 @@ -/* +/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1) + * * lttng.c * * LTTng logger ABI * * Copyright (C) 2008-2014 Mathieu Desnoyers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; only - * version 2.1 of the License. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include -#include +#include #include #include #include @@ -45,7 +32,10 @@ #define LTTNG_LOGGER_COUNT_MAX 1024 #define LTTNG_LOGGER_FILE "lttng-logger" -DEFINE_TRACE(lttng_logger); +LTTNG_DEFINE_TRACE(lttng_logger, + PARAMS(const char __user *text, size_t len), + PARAMS(text, len) +); static struct proc_dir_entry *lttng_logger_dentry; @@ -106,6 +96,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 (LTTNG_LINUX_VERSION_CODE >= LTTNG_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", @@ -117,7 +119,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); @@ -129,7 +131,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;