On 1/23/19 11:59 AM, Aaron Lindsay OS wrote: > A bug was introduced during a respin of: > > commit 57a4a11b2b281bb548b419ca81bfafb214e4c77a > target/arm: Add array for supported PMU events, generate PMCEID[01]_EL0 > > This patch introduced two calls to get_pmceid() during CPU > initialization - one each for PMCEID0 and PMCEID1. In addition to > building the register values, get_pmceid() clears an internal array > mapping event numbers to their implementations (supported_event_map) > before rebuilding it. This is an optimization since much of the logic is > shared. However, since it was called twice, the contents of > supported_event_map reflect only the events in PMCEID1 (the second call > to get_pmceid()). > > Fix this bug by moving the initialization of PMCEID0 and PMCEID1 back > into a single function call, and name it more appropriately since it is > doing more than simply generating the contents of the PMCEID[01] > registers. > > Signed-off-by: Aaron Lindsay <aa...@os.amperecomputing.com> > --- > target/arm/cpu.c | 3 +-- > target/arm/cpu.h | 11 +++++------ > target/arm/helper.c | 27 ++++++++++++++++----------- > 3 files changed, 22 insertions(+), 19 deletions(-)
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~