Author: fabient
Date: Tue Dec  1 22:59:37 2009
New Revision: 200007
URL: http://svn.freebsd.org/changeset/base/200007

Log:
  MFC 198343:
  Handle the case where there is only one PMC in the system.

Modified:
  stable/8/sys/dev/hwpmc/hwpmc_mod.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/hwpmc/hwpmc_mod.c
==============================================================================
--- stable/8/sys/dev/hwpmc/hwpmc_mod.c  Tue Dec  1 22:41:38 2009        
(r200006)
+++ stable/8/sys/dev/hwpmc/hwpmc_mod.c  Tue Dec  1 22:59:37 2009        
(r200007)
@@ -790,7 +790,7 @@ pmc_link_target_process(struct pmc *pm, 
        KASSERT(PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm)),
            ("[pmc,%d] Attaching a non-process-virtual pmc=%p to pid=%d",
                __LINE__, pm, pp->pp_proc->p_pid));
-       KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt < ((int) md->pmd_npmc - 1),
+       KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt <= ((int) md->pmd_npmc - 1),
            ("[pmc,%d] Illegal reference count %d for process record %p",
                __LINE__, pp->pp_refcnt, (void *) pp));
 
@@ -843,7 +843,7 @@ pmc_unlink_target_process(struct pmc *pm
        KASSERT(pm != NULL && pp != NULL,
            ("[pmc,%d] Null pm %p or pp %p", __LINE__, pm, pp));
 
-       KASSERT(pp->pp_refcnt >= 1 && pp->pp_refcnt < (int) md->pmd_npmc,
+       KASSERT(pp->pp_refcnt >= 1 && pp->pp_refcnt <= (int) md->pmd_npmc,
            ("[pmc,%d] Illegal ref count %d on process record %p",
                __LINE__, pp->pp_refcnt, (void *) pp));
 
@@ -1110,7 +1110,7 @@ pmc_detach_one_process(struct proc *p, s
         * descriptor from the target hash table and unset the P_HWPMC
         * flag in the struct proc.
         */
-       KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt < (int) md->pmd_npmc,
+       KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt <= (int) md->pmd_npmc,
            ("[pmc,%d] Illegal refcnt %d for process struct %p",
                __LINE__, pp->pp_refcnt, pp));
 
@@ -1785,7 +1785,7 @@ pmc_hook_handler(struct thread *td, int 
                                        pmc_detach_one_process(td->td_proc,
                                            pm, PMC_FLAG_NONE);
 
-               KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt < (int) 
md->pmd_npmc,
+               KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt <= (int) 
md->pmd_npmc,
                    ("[pmc,%d] Illegal ref count %d on pp %p", __LINE__,
                        pp->pp_refcnt, pp));
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to