|
@@ -711,6 +711,16 @@ __cmd_probe(int argc, const char **argv)
|
|
|
|
|
|
|
|
ret = perf_add_probe_events(params.events, params.nevents);
|
|
ret = perf_add_probe_events(params.events, params.nevents);
|
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
|
|
|
+
|
|
|
|
|
+ /*
|
|
|
|
|
+ * When perf_add_probe_events() fails it calls
|
|
|
|
|
+ * cleanup_perf_probe_events(pevs, npevs), i.e.
|
|
|
|
|
+ * cleanup_perf_probe_events(params.events, params.nevents), which
|
|
|
|
|
+ * will call clear_perf_probe_event(), so set nevents to zero
|
|
|
|
|
+ * to avoid cleanup_params() to call clear_perf_probe_event() again
|
|
|
|
|
+ * on the same pevs.
|
|
|
|
|
+ */
|
|
|
|
|
+ params.nevents = 0;
|
|
|
pr_err_with_code(" Error: Failed to add events.", ret);
|
|
pr_err_with_code(" Error: Failed to add events.", ret);
|
|
|
return ret;
|
|
return ret;
|
|
|
}
|
|
}
|