OSDN Git Service

target/arm: Count PMU events when MDCR.SPME is set
authorAaron Lindsay <aaron@os.amperecomputing.com>
Tue, 25 Aug 2020 14:48:10 +0000 (10:48 -0400)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 14 Sep 2020 13:24:15 +0000 (14:24 +0100)
This check was backwards when introduced in commit
033614c47de78409ad3fb39bb7bd1483b71c6789:

    target/arm: Filter cycle counter based on PMCCFILTR_EL0

Cc: qemu-stable@nongnu.org
Signed-off-by: Aaron Lindsay <aaron@os.amperecomputing.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/helper.c

index 44d6666..88bd9dd 100644 (file)
@@ -1452,7 +1452,7 @@ static bool pmu_counter_enabled(CPUARMState *env, uint8_t counter)
         }
     } else {
         prohibited = arm_feature(env, ARM_FEATURE_EL3) &&
-           (env->cp15.mdcr_el3 & MDCR_SPME);
+           !(env->cp15.mdcr_el3 & MDCR_SPME);
     }
 
     if (prohibited && counter == 31) {