fix: 'struct timex' removed upstream (v5.6)
[lttng-modules.git] / lttng-abi.c
index 77e5e9859e7f51099964f4002b932faf98531984..7cf6b0f4aeafdb88a769142e7213256e07874685 100644 (file)
@@ -56,6 +56,7 @@
 #include <lttng-abi-old.h>
 #include <lttng-events.h>
 #include <lttng-tracer.h>
+#include <lttng-tp-mempool.h>
 #include <lib/ringbuffer/frontend_types.h>
 
 /*
@@ -429,8 +430,8 @@ int lttng_abi_create_channel(struct file *session_file,
                transport_name = "<unknown>";
                break;
        }
-       if (atomic_long_add_unless(&session_file->f_count,
-               1, INT_MAX) == INT_MAX) {
+       if (!atomic_long_add_unless(&session_file->f_count, 1, LONG_MAX)) {
+               ret = -EOVERFLOW;
                goto refcount_error;
        }
        /*
@@ -490,13 +491,12 @@ static
 long lttng_session_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 {
        struct lttng_session *session = file->private_data;
+       struct lttng_kernel_channel chan_param;
+       struct lttng_kernel_old_channel old_chan_param;
 
        switch (cmd) {
        case LTTNG_KERNEL_OLD_CHANNEL:
        {
-               struct lttng_kernel_channel chan_param;
-               struct lttng_kernel_old_channel old_chan_param;
-
                if (copy_from_user(&old_chan_param,
                                (struct lttng_kernel_old_channel __user *) arg,
                                sizeof(struct lttng_kernel_old_channel)))
@@ -513,8 +513,6 @@ long lttng_session_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
        }
        case LTTNG_KERNEL_CHANNEL:
        {
-               struct lttng_kernel_channel chan_param;
-
                if (copy_from_user(&chan_param,
                                (struct lttng_kernel_channel __user *) arg,
                                sizeof(struct lttng_kernel_channel)))
@@ -534,9 +532,6 @@ long lttng_session_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                return lttng_session_disable(session);
        case LTTNG_KERNEL_OLD_METADATA:
        {
-               struct lttng_kernel_channel chan_param;
-               struct lttng_kernel_old_channel old_chan_param;
-
                if (copy_from_user(&old_chan_param,
                                (struct lttng_kernel_old_channel __user *) arg,
                                sizeof(struct lttng_kernel_old_channel)))
@@ -553,8 +548,6 @@ long lttng_session_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
        }
        case LTTNG_KERNEL_METADATA:
        {
-               struct lttng_kernel_channel chan_param;
-
                if (copy_from_user(&chan_param,
                                        (struct lttng_kernel_channel __user *) arg,
                                        sizeof(struct lttng_kernel_channel)))
@@ -1038,8 +1031,7 @@ int lttng_abi_create_event(struct file *channel_file,
                goto file_error;
        }
        /* The event holds a reference on the channel */
-       if (atomic_long_add_unless(&channel_file->f_count,
-               1, INT_MAX) == INT_MAX) {
+       if (!atomic_long_add_unless(&channel_file->f_count, 1, LONG_MAX)) {
                ret = -EOVERFLOW;
                goto refcount_error;
        }
@@ -1727,6 +1719,12 @@ int __init lttng_abi_init(void)
 
        wrapper_vmalloc_sync_all();
        lttng_clock_ref();
+
+       ret = lttng_tp_mempool_init();
+       if (ret) {
+               goto error;
+       }
+
        lttng_proc_dentry = proc_create_data("lttng", S_IRUSR | S_IWUSR, NULL,
                                        &lttng_fops, NULL);
 
@@ -1739,6 +1737,7 @@ int __init lttng_abi_init(void)
        return 0;
 
 error:
+       lttng_tp_mempool_destroy();
        lttng_clock_unref();
        return ret;
 }
@@ -1746,6 +1745,7 @@ error:
 /* No __exit annotation because used by init error path too. */
 void lttng_abi_exit(void)
 {
+       lttng_tp_mempool_destroy();
        lttng_clock_unref();
        if (lttng_proc_dentry)
                remove_proc_entry("lttng", NULL);
This page took 0.024782 seconds and 4 git commands to generate.