diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/trace/trace_probe_tmpl.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/trace/trace_probe_tmpl.h b/kernel/trace/trace_probe_tmpl.h index 5c56afc17cf8..4737bb8c07a3 100644 --- a/kernel/trace/trace_probe_tmpl.h +++ b/kernel/trace/trace_probe_tmpl.h | |||
| @@ -180,10 +180,12 @@ store_trace_args(void *data, struct trace_probe *tp, struct pt_regs *regs, | |||
| 180 | if (unlikely(arg->dynamic)) | 180 | if (unlikely(arg->dynamic)) |
| 181 | *dl = make_data_loc(maxlen, dyndata - base); | 181 | *dl = make_data_loc(maxlen, dyndata - base); |
| 182 | ret = process_fetch_insn(arg->code, regs, dl, base); | 182 | ret = process_fetch_insn(arg->code, regs, dl, base); |
| 183 | if (unlikely(ret < 0 && arg->dynamic)) | 183 | if (unlikely(ret < 0 && arg->dynamic)) { |
| 184 | *dl = make_data_loc(0, dyndata - base); | 184 | *dl = make_data_loc(0, dyndata - base); |
| 185 | else | 185 | } else { |
| 186 | dyndata += ret; | 186 | dyndata += ret; |
| 187 | maxlen -= ret; | ||
| 188 | } | ||
| 187 | } | 189 | } |
| 188 | } | 190 | } |
| 189 | 191 | ||
