Fix instrumentation of vmscan for older kernels
[lttng-modules.git] / lttng-syscalls.c
index 00584e3eb2ed907cbe241b42756fe345ad5fc512..a4a8ed44cd9c76dbc38d0ce8e319182b9f52392e 100644 (file)
@@ -91,6 +91,7 @@ struct mmap_arg_struct;
 #define PARAMS(args...)        args
 
 /* Handle unknown syscalls */
+#undef TRACE_SYSTEM
 #define TRACE_SYSTEM syscalls_unknown
 #include "instrumentation/syscalls/headers/syscalls_unknown.h"
 #undef TRACE_SYSTEM
@@ -1036,6 +1037,8 @@ int lttng_syscall_filter_disable(struct lttng_channel *chan,
        WARN_ON_ONCE(!chan->sc_table);
 
        if (!chan->sc_filter) {
+               if (!chan->syscall_all)
+                       return -EEXIST;
                filter = kzalloc(sizeof(struct lttng_syscall_filter),
                                GFP_KERNEL);
                if (!filter)
@@ -1228,12 +1231,12 @@ long lttng_channel_syscall_mask(struct lttng_channel *channel,
 
        for (bit = 0; bit < ARRAY_SIZE(sc_table); bit++) {
                bt_bitfield_write_be(tmp_mask, char, bit, 1,
-                       test_bit(bit, filter->sc));
+                       filter ? test_bit(bit, filter->sc) : 1);
        }
        for (; bit < sc_tables_len; bit++) {
                bt_bitfield_write_be(tmp_mask, char, bit, 1,
-                       test_bit(bit - ARRAY_SIZE(sc_table),
-                               filter->sc_compat));
+                       filter ? test_bit(bit - ARRAY_SIZE(sc_table),
+                               filter->sc_compat) : 1);
        }
        if (copy_to_user(usyscall_mask->mask, tmp_mask, bitmask_len))
                ret = -EFAULT;
This page took 0.023471 seconds and 4 git commands to generate.