trace: Don't use __weak in header files
[cascardo/linux.git] / kernel / trace / trace_probe.c
index b983b2f..1769a81 100644 (file)
@@ -356,17 +356,14 @@ static int parse_probe_vars(char *arg, const struct fetch_type *t,
 
 /* Recursive argument parser */
 static int parse_probe_arg(char *arg, const struct fetch_type *t,
-                    struct fetch_param *f, bool is_return, bool is_kprobe)
+                    struct fetch_param *f, bool is_return, bool is_kprobe,
+                    const struct fetch_type *ftbl)
 {
-       const struct fetch_type *ftbl;
        unsigned long param;
        long offset;
        char *tmp;
        int ret = 0;
 
-       ftbl = is_kprobe ? kprobes_fetch_type_table : uprobes_fetch_type_table;
-       BUG_ON(ftbl == NULL);
-
        switch (arg[0]) {
        case '$':
                ret = parse_probe_vars(arg + 1, t, f, is_return, is_kprobe);
@@ -447,7 +444,7 @@ static int parse_probe_arg(char *arg, const struct fetch_type *t,
                        dprm->fetch_size = get_fetch_size_function(t,
                                                        dprm->fetch, ftbl);
                        ret = parse_probe_arg(arg, t2, &dprm->orig, is_return,
-                                                       is_kprobe);
+                                                       is_kprobe, ftbl);
                        if (ret)
                                kfree(dprm);
                        else {
@@ -505,15 +502,12 @@ static int __parse_bitfield_probe_arg(const char *bf,
 
 /* String length checking wrapper */
 int traceprobe_parse_probe_arg(char *arg, ssize_t *size,
-               struct probe_arg *parg, bool is_return, bool is_kprobe)
+               struct probe_arg *parg, bool is_return, bool is_kprobe,
+               const struct fetch_type *ftbl)
 {
-       const struct fetch_type *ftbl;
        const char *t;
        int ret;
 
-       ftbl = is_kprobe ? kprobes_fetch_type_table : uprobes_fetch_type_table;
-       BUG_ON(ftbl == NULL);
-
        if (strlen(arg) > MAX_ARGSTR_LEN) {
                pr_info("Argument is too long.: %s\n",  arg);
                return -ENOSPC;
@@ -535,7 +529,8 @@ int traceprobe_parse_probe_arg(char *arg, ssize_t *size,
        }
        parg->offset = *size;
        *size += parg->type->size;
-       ret = parse_probe_arg(arg, parg->type, &parg->fetch, is_return, is_kprobe);
+       ret = parse_probe_arg(arg, parg->type, &parg->fetch, is_return,
+                             is_kprobe, ftbl);
 
        if (ret >= 0 && t != NULL)
                ret = __parse_bitfield_probe_arg(t, parg->type, &parg->fetch);