fix: objtool: Rename frame.h -> objtool.h (v5.10)
[lttng-modules.git] / src / lttng-filter-interpreter.c
index 6c1c2f279e021391589cf28e1ae41976bc21cb80..09302c76145d5fdacdffc713bcecd6a3815ed8c3 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 #include <wrapper/uaccess.h>
-#include <wrapper/frame.h>
+#include <wrapper/objtool.h>
 #include <wrapper/types.h>
 #include <linux/swab.h>
 
@@ -81,16 +81,14 @@ static
 int stack_star_glob_match(struct estack *stack, int top, const char *cmp_type)
 {
        bool has_user = false;
-       mm_segment_t old_fs;
        int result;
        struct estack_entry *pattern_reg;
        struct estack_entry *candidate_reg;
 
+       /* Disable the page fault handler when reading from userspace. */
        if (estack_bx(stack, top)->u.s.user
                        || estack_ax(stack, top)->u.s.user) {
                has_user = true;
-               old_fs = get_fs();
-               set_fs(KERNEL_DS);
                pagefault_disable();
        }
 
@@ -106,10 +104,8 @@ int stack_star_glob_match(struct estack *stack, int top, const char *cmp_type)
        /* Perform the match operation. */
        result = !strutils_star_glob_match_char_cb(get_char_at_cb,
                pattern_reg, get_char_at_cb, candidate_reg);
-       if (has_user) {
+       if (has_user)
                pagefault_enable();
-               set_fs(old_fs);
-       }
 
        return result;
 }
@@ -119,13 +115,10 @@ int stack_strcmp(struct estack *stack, int top, const char *cmp_type)
 {
        size_t offset_bx = 0, offset_ax = 0;
        int diff, has_user = 0;
-       mm_segment_t old_fs;
 
        if (estack_bx(stack, top)->u.s.user
                        || estack_ax(stack, top)->u.s.user) {
                has_user = 1;
-               old_fs = get_fs();
-               set_fs(KERNEL_DS);
                pagefault_disable();
        }
 
@@ -210,10 +203,9 @@ int stack_strcmp(struct estack *stack, int top, const char *cmp_type)
                offset_bx++;
                offset_ax++;
        }
-       if (has_user) {
+       if (has_user)
                pagefault_enable();
-               set_fs(old_fs);
-       }
+
        return diff;
 }
 
@@ -234,7 +226,7 @@ uint64_t lttng_filter_false(void *filter_data,
        start_pc = &bytecode->data[0];                                  \
        for (pc = next_pc = start_pc; pc - start_pc < bytecode->len;    \
                        pc = next_pc) {                                 \
-               dbg_printk("Executing op %s (%u)\n",                    \
+               dbg_printk("LTTng: Executing op %s (%u)\n",             \
                        lttng_filter_print_op((unsigned int) *(filter_opcode_t *) pc), \
                        (unsigned int) *(filter_opcode_t *) pc);        \
                switch (*(filter_opcode_t *) pc)        {
@@ -317,11 +309,11 @@ static int context_get_index(struct lttng_probe_ctx *lttng_probe_ctx,
        }
        case atype_array_nestable:
                if (!lttng_is_bytewise_integer(field->type.u.array_nestable.elem_type)) {
-                       printk(KERN_WARNING "Array nesting only supports integer types.\n");
+                       printk(KERN_WARNING "LTTng: filter: Array nesting only supports integer types.\n");
                        return -EINVAL;
                }
                if (field->type.u.array_nestable.elem_type->u.integer.encoding == lttng_encode_none) {
-                       printk(KERN_WARNING "Only string arrays are supported for contexts.\n");
+                       printk(KERN_WARNING "LTTng: filter: Only string arrays are supported for contexts.\n");
                        return -EINVAL;
                }
                ptr->object_type = OBJECT_TYPE_STRING;
@@ -330,11 +322,11 @@ static int context_get_index(struct lttng_probe_ctx *lttng_probe_ctx,
                break;
        case atype_sequence_nestable:
                if (!lttng_is_bytewise_integer(field->type.u.sequence_nestable.elem_type)) {
-                       printk(KERN_WARNING "Sequence nesting only supports integer types.\n");
+                       printk(KERN_WARNING "LTTng: filter: Sequence nesting only supports integer types.\n");
                        return -EINVAL;
                }
                if (field->type.u.sequence_nestable.elem_type->u.integer.encoding == lttng_encode_none) {
-                       printk(KERN_WARNING "Only string sequences are supported for contexts.\n");
+                       printk(KERN_WARNING "LTTng: filter: Only string sequences are supported for contexts.\n");
                        return -EINVAL;
                }
                ptr->object_type = OBJECT_TYPE_STRING;
@@ -347,13 +339,13 @@ static int context_get_index(struct lttng_probe_ctx *lttng_probe_ctx,
                ptr->ptr = v.str;
                break;
        case atype_struct_nestable:
-               printk(KERN_WARNING "Structure type cannot be loaded.\n");
+               printk(KERN_WARNING "LTTng: filter: Structure type cannot be loaded.\n");
                return -EINVAL;
        case atype_variant_nestable:
-               printk(KERN_WARNING "Variant type cannot be loaded.\n");
+               printk(KERN_WARNING "LTTng: filter: Variant type cannot be loaded.\n");
                return -EINVAL;
        default:
-               printk(KERN_WARNING "Unknown type: %d", (int) field->type.atype);
+               printk(KERN_WARNING "LTTng: filter: Unknown type: %d", (int) field->type.atype);
                return -EINVAL;
        }
        return 0;
@@ -412,12 +404,12 @@ static int dynamic_get_index(struct lttng_probe_ctx *lttng_probe_ctx,
                        break;
                }
                case OBJECT_TYPE_STRUCT:
-                       printk(KERN_WARNING "Nested structures are not supported yet.\n");
+                       printk(KERN_WARNING "LTTng: filter: Nested structures are not supported yet.\n");
                        ret = -EINVAL;
                        goto end;
                case OBJECT_TYPE_VARIANT:
                default:
-                       printk(KERN_WARNING "Unexpected get index type %d",
+                       printk(KERN_WARNING "LTTng: filter: Unexpected get index type %d",
                                (int) stack_top->u.ptr.object_type);
                        ret = -EINVAL;
                        goto end;
@@ -588,7 +580,7 @@ static int dynamic_load_field(struct estack_entry *stack_top)
        case OBJECT_TYPE_ARRAY:
        case OBJECT_TYPE_STRUCT:
        case OBJECT_TYPE_VARIANT:
-               printk(KERN_WARNING "Sequences, arrays, struct and variant cannot be loaded (nested types).\n");
+               printk(KERN_WARNING "LTTng: filter: Sequences, arrays, struct and variant cannot be loaded (nested types).\n");
                ret = -EINVAL;
                goto end;
        }
@@ -764,7 +756,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
 #ifdef INTERPRETER_USE_SWITCH
                default:
 #endif /* INTERPRETER_USE_SWITCH */
-                       printk(KERN_WARNING "unknown bytecode op %u\n",
+                       printk(KERN_WARNING "LTTng: filter: unknown bytecode op %u\n",
                                (unsigned int) *(filter_opcode_t *) pc);
                        ret = -EINVAL;
                        goto end;
@@ -782,7 +774,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                OP(FILTER_OP_MOD):
                OP(FILTER_OP_PLUS):
                OP(FILTER_OP_MINUS):
-                       printk(KERN_WARNING "unsupported bytecode op %u\n",
+                       printk(KERN_WARNING "LTTng: filter: unsupported bytecode op %u\n",
                                (unsigned int) *(filter_opcode_t *) pc);
                        ret = -EINVAL;
                        goto end;
@@ -793,7 +785,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                OP(FILTER_OP_LT):
                OP(FILTER_OP_GE):
                OP(FILTER_OP_LE):
-                       printk(KERN_WARNING "unsupported non-specialized bytecode op %u\n",
+                       printk(KERN_WARNING "LTTng: filter: unsupported non-specialized bytecode op %u\n",
                                (unsigned int) *(filter_opcode_t *) pc);
                        ret = -EINVAL;
                        goto end;
@@ -1034,7 +1026,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                OP(FILTER_OP_UNARY_PLUS):
                OP(FILTER_OP_UNARY_MINUS):
                OP(FILTER_OP_UNARY_NOT):
-                       printk(KERN_WARNING "unsupported non-specialized bytecode op %u\n",
+                       printk(KERN_WARNING "LTTng: filter: unsupported non-specialized bytecode op %u\n",
                                (unsigned int) *(filter_opcode_t *) pc);
                        ret = -EINVAL;
                        goto end;
@@ -1237,7 +1229,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
 
                /* cast */
                OP(FILTER_OP_CAST_TO_S64):
-                       printk(KERN_WARNING "unsupported non-specialized bytecode op %u\n",
+                       printk(KERN_WARNING "LTTng: filter: unsupported non-specialized bytecode op %u\n",
                                (unsigned int) *(filter_opcode_t *) pc);
                        ret = -EINVAL;
                        goto end;
@@ -1391,7 +1383,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                        dbg_printk("op get symbol\n");
                        switch (estack_ax(stack, top)->u.ptr.type) {
                        case LOAD_OBJECT:
-                               printk(KERN_WARNING "Nested fields not implemented yet.\n");
+                               printk(KERN_WARNING "LTTng: filter: Nested fields not implemented yet.\n");
                                ret = -EINVAL;
                                goto end;
                        case LOAD_ROOT_CONTEXT:
This page took 0.026871 seconds and 4 git commands to generate.