Author: gonzo
Date: Tue Mar 27 18:22:14 2012
New Revision: 233569
URL: http://svn.freebsd.org/changeset/base/233569

Log:
  Fix crash on VirtualBox (and probably on some real hardware):
  
  - Do not cover error returned by pmc_core_initialize with the
      result of pmc_uncore_initialize, fail right away.
  - Give a user something to report instead failing silently
  
  Reported by:  Alexandr Kovalenko <[email protected]>

Modified:
  head/sys/dev/hwpmc/hwpmc_core.c
  head/sys/dev/hwpmc/hwpmc_intel.c

Modified: head/sys/dev/hwpmc/hwpmc_core.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_core.c     Tue Mar 27 18:17:22 2012        
(r233568)
+++ head/sys/dev/hwpmc/hwpmc_core.c     Tue Mar 27 18:22:14 2012        
(r233569)
@@ -2406,8 +2406,12 @@ pmc_core_initialize(struct pmc_mdep *md,
        PMCDBG(MDP,INI,1,"core-init cputype=%d ncpu=%d ipa-version=%d",
            md->pmd_cputype, maxcpu, ipa_version);
 
-       if (ipa_version < 1 || ipa_version > 3) /* Unknown PMC architecture. */
+       if (ipa_version < 1 || ipa_version > 3) {
+               /* Unknown PMC architecture. */
+               printf("hwpc_core: unknown PMC architecture: %d\n",
+                   ipa_version);
                return (EPROGMISMATCH);
+       }
 
        core_cputype = md->pmd_cputype;
 

Modified: head/sys/dev/hwpmc/hwpmc_intel.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_intel.c    Tue Mar 27 18:17:22 2012        
(r233568)
+++ head/sys/dev/hwpmc/hwpmc_intel.c    Tue Mar 27 18:22:14 2012        
(r233569)
@@ -239,6 +239,9 @@ pmc_intel_initialize(void)
                KASSERT(0, ("[intel,%d] Unknown CPU type", __LINE__));
        }
 
+       if (error)
+               goto error;
+
        /*
         * Init the uncore class.
         */
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to