* When putting a CCB back into the ap_ccb_free list do not
change the state until after ap_ccb_lock has been acquired.
{
struct ahci_port *ap = ccb->ccb_port;
- ccb->ccb_xa.state = ATA_S_PUT;
lockmgr(&ap->ap_ccb_lock, LK_EXCLUSIVE);
+ ccb->ccb_xa.state = ATA_S_PUT;
TAILQ_INSERT_TAIL(&ap->ap_ccb_free, ccb, ccb_entry);
lockmgr(&ap->ap_ccb_lock, LK_RELEASE);
}
{
struct sili_port *ap = ccb->ccb_port;
- ccb->ccb_xa.state = ATA_S_PUT;
lockmgr(&ap->ap_ccb_lock, LK_EXCLUSIVE);
+ ccb->ccb_xa.state = ATA_S_PUT;
TAILQ_INSERT_TAIL(&ap->ap_ccb_free, ccb, ccb_entry);
lockmgr(&ap->ap_ccb_lock, LK_RELEASE);
}