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)
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to