diff options
Diffstat (limited to 'tools/perf/tests/code-reading.c')
| -rw-r--r-- | tools/perf/tests/code-reading.c | 16 | 
1 files changed, 10 insertions, 6 deletions
| diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c index a767a6400c5c..313a48c6b2bc 100644 --- a/tools/perf/tests/code-reading.c +++ b/tools/perf/tests/code-reading.c @@ -433,7 +433,6 @@ enum {  static int do_test_code_reading(bool try_kcore)  { -	struct machines machines;  	struct machine *machine;  	struct thread *thread;  	struct record_opts opts = { @@ -459,8 +458,7 @@ static int do_test_code_reading(bool try_kcore)  	pid = getpid(); -	machines__init(&machines); -	machine = &machines.host; +	machine = machine__new_host();  	ret = machine__create_kernel_maps(machine);  	if (ret < 0) { @@ -549,6 +547,13 @@ static int do_test_code_reading(bool try_kcore)  		if (ret < 0) {  			if (!excl_kernel) {  				excl_kernel = true; +				/* +				 * Both cpus and threads are now owned by evlist +				 * and will be freed by following perf_evlist__set_maps +				 * call. Getting refference to keep them alive. +				 */ +				cpu_map__get(cpus); +				thread_map__get(threads);  				perf_evlist__set_maps(evlist, NULL, NULL);  				perf_evlist__delete(evlist);  				evlist = NULL; @@ -594,14 +599,13 @@ out_err:  		cpu_map__put(cpus);  		thread_map__put(threads);  	} -	machines__destroy_kernel_maps(&machines);  	machine__delete_threads(machine); -	machines__exit(&machines); +	machine__delete(machine);  	return err;  } -int test__code_reading(void) +int test__code_reading(int subtest __maybe_unused)  {  	int ret; | 
