/**
 * mrsas_cmd_done:           Perform remaining command completion 
 * input:                    Adapter instance soft state  
 *                           Pointer to command packet 
 *
 * This function calls ummap request and releases the MPT command. 
 */
void mrsas_cmd_done(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd)
{
    callout_stop(&cmd->cm_callout);
    mrsas_unmap_request(sc, cmd);
    lockmgr(&sc->sim_lock, LK_EXCLUSIVE);
    xpt_done(cmd->ccb_ptr);
    cmd->ccb_ptr = NULL;
    lockmgr(&sc->sim_lock, LK_RELEASE);
    mrsas_release_mpt_cmd(cmd);
}
Пример #2
0
/**
 * mrsas_cmd_done:           Perform remaining command completion 
 * input:                    Adapter instance soft state  
 *                           Pointer to command packet 
 *
 * This function calls ummap request and releases the MPT command. 
 */
void mrsas_cmd_done(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd)
{
    callout_stop(&cmd->cm_callout);
    mrsas_unmap_request(sc, cmd);
    mtx_lock(&sc->sim_lock);
    xpt_done(cmd->ccb_ptr);
    cmd->ccb_ptr = NULL;
    mtx_unlock(&sc->sim_lock);
    mrsas_release_mpt_cmd(cmd);
}