diff options
| -rw-r--r-- | kernel/trace/trace_events_hist.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c index 2b76f9520bd0..ca6b0dff60c5 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c | |||
| @@ -3585,14 +3585,20 @@ static bool cond_snapshot_update(struct trace_array *tr, void *cond_data) | |||
| 3585 | struct track_data *track_data = tr->cond_snapshot->cond_data; | 3585 | struct track_data *track_data = tr->cond_snapshot->cond_data; |
| 3586 | struct hist_elt_data *elt_data, *track_elt_data; | 3586 | struct hist_elt_data *elt_data, *track_elt_data; |
| 3587 | struct snapshot_context *context = cond_data; | 3587 | struct snapshot_context *context = cond_data; |
| 3588 | struct action_data *action; | ||
| 3588 | u64 track_val; | 3589 | u64 track_val; |
| 3589 | 3590 | ||
| 3590 | if (!track_data) | 3591 | if (!track_data) |
| 3591 | return false; | 3592 | return false; |
| 3592 | 3593 | ||
| 3594 | action = track_data->action_data; | ||
| 3595 | |||
| 3593 | track_val = get_track_val(track_data->hist_data, context->elt, | 3596 | track_val = get_track_val(track_data->hist_data, context->elt, |
| 3594 | track_data->action_data); | 3597 | track_data->action_data); |
| 3595 | 3598 | ||
| 3599 | if (!action->track_data.check_val(track_data->track_val, track_val)) | ||
| 3600 | return false; | ||
| 3601 | |||
| 3596 | track_data->track_val = track_val; | 3602 | track_data->track_val = track_val; |
| 3597 | memcpy(track_data->key, context->key, track_data->key_len); | 3603 | memcpy(track_data->key, context->key, track_data->key_len); |
| 3598 | 3604 | ||
