]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/i386/machine_check.c
xnu-1228.3.13.tar.gz
[apple/xnu.git] / osfmk / i386 / machine_check.c
index 8abf223f975612d1ec7ccbc3a9700b81ba8dcc30..214a588b75fdd7542a038493466fd19238952a67 100644 (file)
@@ -308,11 +308,18 @@ mca_dump(void)
 {
        ia32_mcg_status_t       status;
 
-       mca_exception_taken = TRUE;
        mca_save_state();
 
-       /* Serialize in case of multiple simultaneous machine-checks */
+       /*
+        * Serialize in case of multiple simultaneous machine-checks.
+        * Only the first caller is allowed to print MCA registers.
+        */
        simple_lock(&mca_lock);
+       if (mca_exception_taken) {
+               simple_unlock(&mca_lock);
+               return;
+       }
+       mca_exception_taken = TRUE;
 
        /*
         * Report machine-check capabilities: