summaryrefslogtreecommitdiffstats
path: root/sys/dev/hwpmc/hwpmc_e500.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hwpmc/hwpmc_e500.c')
-rw-r--r--sys/dev/hwpmc/hwpmc_e500.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/hwpmc/hwpmc_e500.c b/sys/dev/hwpmc/hwpmc_e500.c
index f8ae119..dbec7ae 100644
--- a/sys/dev/hwpmc/hwpmc_e500.c
+++ b/sys/dev/hwpmc/hwpmc_e500.c
@@ -507,6 +507,7 @@ e500_allocate_pmc(int cpu, int ri, struct pmc *pm,
pe = a->pm_ev;
config = PMLCax_FCS | PMLCax_FCU |
PMLCax_FCM1 | PMLCax_FCM1;
+
if (pe < PMC_EV_E500_FIRST || pe > PMC_EV_E500_LAST)
return (EINVAL);
@@ -517,14 +518,14 @@ e500_allocate_pmc(int cpu, int ri, struct pmc *pm,
vers = mfpvr() >> 16;
switch (vers) {
case FSL_E500v1:
- pe_cpu_mask = ev->pe_code & PMC_PPC_E500V1;
+ pe_cpu_mask = ev->pe_cpu & PMC_PPC_E500V1;
break;
case FSL_E500v2:
- pe_cpu_mask = ev->pe_code & PMC_PPC_E500V2;
+ pe_cpu_mask = ev->pe_cpu & PMC_PPC_E500V2;
break;
case FSL_E500mc:
case FSL_E5500:
- pe_cpu_mask = ev->pe_code & PMC_PPC_E500MC;
+ pe_cpu_mask = ev->pe_cpu & PMC_PPC_E500MC;
break;
}
if (pe_cpu_mask == 0)
OpenPOWER on IntegriCloud