X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=probes%2Flttng.c;h=b63ffdf3e6fc9b2ecd12690652dd000099ea4b89;hb=c7f2a03aa26ba4e481f63c1824e02018edf475a2;hp=8810fa223893b302b5e0b7c42426e9e2748c1cd4;hpb=32fe46fb8640cf2e50103ba2f2efd1ef5c245eaf;p=lttng-modules.git diff --git a/probes/lttng.c b/probes/lttng.c index 8810fa22..b63ffdf3 100644 --- a/probes/lttng.c +++ b/probes/lttng.c @@ -65,7 +65,7 @@ static ssize_t lttng_logger_write(struct file *file, const char __user *user_buf, size_t count, loff_t *ppos) { - unsigned int nr_pages = 1, i; + int nr_pages = 1, i; unsigned long uaddr = (unsigned long) user_buf; struct page *pages[2]; ssize_t written; @@ -105,6 +105,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 + int __init lttng_logger_init(void) { int ret = 0; @@ -112,7 +124,7 @@ int __init lttng_logger_init(void) wrapper_vmalloc_sync_all(); 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 file\n"); ret = -ENOMEM;