|
Description
|
This code in ahci_software_reset claims to clear AHCI_CMD_STATUS_ST but or's in that value in the ddi_put32, leaving it set the entire time:
/* First to clear PxCMD.ST */
port_cmd_status = ddi_get32(ahci_ctlp->ahcictl_ahci_acc_handle,
(uint32_t *)AHCI_PORT_PxCMD(ahci_ctlp, port));
port_cmd_status &= ~AHCI_CMD_STATUS_ST;
ddi_put32(ahci_ctlp->ahcictl_ahci_acc_handle,
(uint32_t *)AHCI_PORT_PxCMD(ahci_ctlp, port),
port_cmd_status|AHCI_CMD_STATUS_ST); <<<<<<<<<<<<<<<
|