Print this page
10055 recursive mutex enter in ahci

@@ -1201,20 +1201,20 @@
                         return (DDI_SUCCESS);
                 }
 
                 ahci_ctlp->ahcictl_flags |= AHCI_SUSPEND;
 
-                ahci_em_suspend(ahci_ctlp);
-
                 /* stop the watchdog handler */
                 if (ahci_ctlp->ahcictl_timeout_id) {
                         (void) untimeout(ahci_ctlp->ahcictl_timeout_id);
                         ahci_ctlp->ahcictl_timeout_id = 0;
                 }
 
                 mutex_exit(&ahci_ctlp->ahcictl_mutex);
 
+                ahci_em_suspend(ahci_ctlp);
+
                 /*
                  * drain the taskq
                  */
                 ahci_drain_ports_taskq(ahci_ctlp);