• A
    target/arm: Don't clear supported PMU events when initializing PMCEID1 · bf8d0969
    Aaron Lindsay OS 提交于
    A bug was introduced during a respin of:
    
    	commit 57a4a11b
    	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: NAaron Lindsay <aaron@os.amperecomputing.com>
    Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
    Message-id: 20190123195814.29253-1-aaron@os.amperecomputing.com
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    bf8d0969
cpu.c 70.9 KB