diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/trace/trace_events_filter.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index db6e54bdb596..1d8192304842 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c | |||
@@ -546,6 +546,7 @@ static int filter_add_pred(struct filter_parse_state *ps, | |||
546 | filter_pred_fn_t fn; | 546 | filter_pred_fn_t fn; |
547 | unsigned long long val; | 547 | unsigned long long val; |
548 | int string_type; | 548 | int string_type; |
549 | int ret; | ||
549 | 550 | ||
550 | pred->fn = filter_pred_none; | 551 | pred->fn = filter_pred_none; |
551 | 552 | ||
@@ -581,7 +582,11 @@ static int filter_add_pred(struct filter_parse_state *ps, | |||
581 | pred->not = 1; | 582 | pred->not = 1; |
582 | return filter_add_pred_fn(ps, call, pred, fn); | 583 | return filter_add_pred_fn(ps, call, pred, fn); |
583 | } else { | 584 | } else { |
584 | if (strict_strtoull(pred->str_val, 0, &val)) { | 585 | if (field->is_signed) |
586 | ret = strict_strtoll(pred->str_val, 0, &val); | ||
587 | else | ||
588 | ret = strict_strtoull(pred->str_val, 0, &val); | ||
589 | if (ret) { | ||
585 | parse_error(ps, FILT_ERR_ILLEGAL_INTVAL, 0); | 590 | parse_error(ps, FILT_ERR_ILLEGAL_INTVAL, 0); |
586 | return -EINVAL; | 591 | return -EINVAL; |
587 | } | 592 | } |