perf report: Fix switching to another perf.data file
In the TUI the 's' hotkey can be used to switch to another perf.data file in the current directory, but that got broken in Fixes:b01141f4f5
("perf annotate: Initialize the priv are in symbol__new()"), that would show this once another file was chosen: ┌─Fatal Error─────────────────────────────────────┐ │Annotation needs to be init before symbol__init()│ │ │ │ │ │Press any key... │ └─────────────────────────────────────────────────┘ Fix it by just silently bailing out if symbol__annotation_init() was already called, just like is done with symbol__init(), i.e. they are done just once at session start, not when switching to a new perf.data file. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jin Yao <yao.jin@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Martin Liška <mliska@suse.cz> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> Cc: Thomas Richter <tmricht@linux.vnet.ibm.com> Cc: Wang Nan <wangnan0@huawei.com> Fixes:b01141f4f5
("perf annotate: Initialize the priv are in symbol__new()") Link: https://lkml.kernel.org/n/tip-ogppdtpzfax7y1h6gjdv5s6u@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
4f75f1cbf9
commit
7b366142a5
|
@ -2091,16 +2091,14 @@ static bool symbol__read_kptr_restrict(void)
|
||||||
|
|
||||||
int symbol__annotation_init(void)
|
int symbol__annotation_init(void)
|
||||||
{
|
{
|
||||||
|
if (symbol_conf.init_annotation)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (symbol_conf.initialized) {
|
if (symbol_conf.initialized) {
|
||||||
pr_err("Annotation needs to be init before symbol__init()\n");
|
pr_err("Annotation needs to be init before symbol__init()\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (symbol_conf.init_annotation) {
|
|
||||||
pr_warning("Annotation being initialized multiple times\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
symbol_conf.priv_size += sizeof(struct annotation);
|
symbol_conf.priv_size += sizeof(struct annotation);
|
||||||
symbol_conf.init_annotation = true;
|
symbol_conf.init_annotation = true;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue