svn commit: r297730 - head/sys/dev/hwpmc
Justin Hibbits
jhibbits at FreeBSD.org
Sat Apr 9 01:02:19 UTC 2016
Author: jhibbits
Date: Sat Apr 9 01:02:17 2016
New Revision: 297730
URL: https://svnweb.freebsd.org/changeset/base/297730
Log:
Fix a masking bug for e500 PMC.
No idea how this slipped through my regression testing. pe_code is the event to
count, pe_cpu is the CPU family mask.
Modified:
head/sys/dev/hwpmc/hwpmc_e500.c
Modified: head/sys/dev/hwpmc/hwpmc_e500.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_e500.c Sat Apr 9 00:58:38 2016 (r297729)
+++ head/sys/dev/hwpmc/hwpmc_e500.c Sat Apr 9 01:02:17 2016 (r297730)
@@ -507,6 +507,7 @@ e500_allocate_pmc(int cpu, int ri, struc
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, struc
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)
More information about the svn-src-head
mailing list