diff options
Diffstat (limited to 'kernel/trace/trace_kprobe.c')
-rw-r--r-- | kernel/trace/trace_kprobe.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index 2dec9bcde8b4..2088893c049e 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c | |||
@@ -767,16 +767,15 @@ static int __parse_probe_arg(char *arg, const struct fetch_type *t, | |||
767 | } | 767 | } |
768 | break; | 768 | break; |
769 | case '+': /* deref memory */ | 769 | case '+': /* deref memory */ |
770 | arg++; /* Skip '+', because strict_strtol() rejects it. */ | ||
770 | case '-': | 771 | case '-': |
771 | tmp = strchr(arg, '('); | 772 | tmp = strchr(arg, '('); |
772 | if (!tmp) | 773 | if (!tmp) |
773 | break; | 774 | break; |
774 | *tmp = '\0'; | 775 | *tmp = '\0'; |
775 | ret = strict_strtol(arg + 1, 0, &offset); | 776 | ret = strict_strtol(arg, 0, &offset); |
776 | if (ret) | 777 | if (ret) |
777 | break; | 778 | break; |
778 | if (arg[0] == '-') | ||
779 | offset = -offset; | ||
780 | arg = tmp + 1; | 779 | arg = tmp + 1; |
781 | tmp = strrchr(arg, ')'); | 780 | tmp = strrchr(arg, ')'); |
782 | if (tmp) { | 781 | if (tmp) { |