Lines Matching refs:cm

122 static void mprsas_abort_complete(struct mpr_softc *sc, struct mpr_command *cm);
128 struct mpr_command *cm);
133 struct mpr_command *cm);
135 static void mprsas_smpio_complete(struct mpr_softc *sc, struct mpr_command *cm);
302 mprsas_log_command(struct mpr_command *cm, u_int level, const char *fmt, ...) in mprsas_log_command() argument
308 if (cm == NULL) in mprsas_log_command()
312 if ((cm->cm_sc->mpr_debug & level) == 0) in mprsas_log_command()
319 if (cm->cm_ccb != NULL) { in mprsas_log_command()
320 xpt_path_sbuf(cm->cm_ccb->csio.ccb_h.path, &sb); in mprsas_log_command()
321 if (cm->cm_ccb->ccb_h.func_code == XPT_SCSI_IO) { in mprsas_log_command()
322 scsi_command_string(&cm->cm_ccb->csio, &sb); in mprsas_log_command()
324 cm->cm_ccb->csio.dxfer_len); in mprsas_log_command()
328 cam_sim_name(cm->cm_sc->sassc->sim), in mprsas_log_command()
329 cam_sim_unit(cm->cm_sc->sassc->sim), in mprsas_log_command()
330 cam_sim_bus(cm->cm_sc->sassc->sim), in mprsas_log_command()
331 cm->cm_targ ? cm->cm_targ->tid : 0xFFFFFFFF, in mprsas_log_command()
332 cm->cm_lun); in mprsas_log_command()
335 sbuf_printf(&sb, "SMID %u ", cm->cm_desc.Default.SMID); in mprsas_log_command()
338 mpr_print_field(cm->cm_sc, "%s", sbuf_data(&sb)); in mprsas_log_command()
444 struct mpr_command *cm; in mprsas_prepare_volume_remove() local
461 cm = mprsas_alloc_tm(sc); in mprsas_prepare_volume_remove()
462 if (cm == NULL) { in mprsas_prepare_volume_remove()
470 req = (MPI2_SCSI_TASK_MANAGE_REQUEST *)cm->cm_req; in mprsas_prepare_volume_remove()
483 cm->cm_targ = targ; in mprsas_prepare_volume_remove()
484 cm->cm_data = NULL; in mprsas_prepare_volume_remove()
485 cm->cm_complete = mprsas_remove_volume; in mprsas_prepare_volume_remove()
486 cm->cm_complete_data = (void *)(uintptr_t)handle; in mprsas_prepare_volume_remove()
490 mprsas_prepare_for_tm(sc, cm, targ, CAM_LUN_WILDCARD); in mprsas_prepare_volume_remove()
492 mpr_map_command(sc, cm); in mprsas_prepare_volume_remove()
1108 struct mpr_command *cm; in mprsas_complete_all_commands() local
1117 cm = &sc->commands[i]; in mprsas_complete_all_commands()
1118 if (cm->cm_state == MPR_CM_STATE_FREE) in mprsas_complete_all_commands()
1121 cm->cm_state = MPR_CM_STATE_BUSY; in mprsas_complete_all_commands()
1122 cm->cm_reply = NULL; in mprsas_complete_all_commands()
1125 if (cm->cm_flags & MPR_CM_FLAGS_SATA_ID_TIMEOUT) { in mprsas_complete_all_commands()
1126 MPASS(cm->cm_data); in mprsas_complete_all_commands()
1127 free(cm->cm_data, M_MPR); in mprsas_complete_all_commands()
1128 cm->cm_data = NULL; in mprsas_complete_all_commands()
1131 if (cm->cm_flags & MPR_CM_FLAGS_POLLED) in mprsas_complete_all_commands()
1132 cm->cm_flags |= MPR_CM_FLAGS_COMPLETE; in mprsas_complete_all_commands()
1134 if (cm->cm_complete != NULL) { in mprsas_complete_all_commands()
1135 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_complete_all_commands()
1137 cm, cm->cm_state, cm->cm_ccb); in mprsas_complete_all_commands()
1138 cm->cm_complete(sc, cm); in mprsas_complete_all_commands()
1140 } else if (cm->cm_flags & MPR_CM_FLAGS_WAKEUP) { in mprsas_complete_all_commands()
1141 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_complete_all_commands()
1143 cm, cm->cm_state, cm->cm_ccb); in mprsas_complete_all_commands()
1144 wakeup(cm); in mprsas_complete_all_commands()
1148 if ((completed == 0) && (cm->cm_state != MPR_CM_STATE_FREE)) { in mprsas_complete_all_commands()
1150 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_complete_all_commands()
1152 "reset\n", cm, cm->cm_state, cm->cm_flags, in mprsas_complete_all_commands()
1153 cm->cm_ccb); in mprsas_complete_all_commands()
1225 struct mpr_command *cm; in mprsas_logical_unit_reset_complete() local
1275 TAILQ_FOREACH(cm, &targ->commands, cm_link) { in mprsas_logical_unit_reset_complete()
1276 if (cm->cm_lun == tm->cm_lun) in mprsas_logical_unit_reset_complete()
1293 cm = TAILQ_FIRST(&targ->timedout_commands); in mprsas_logical_unit_reset_complete()
1294 if (cm) { in mprsas_logical_unit_reset_complete()
1297 mprsas_send_abort(sc, tm, cm); in mprsas_logical_unit_reset_complete()
1476 struct mpr_command *cm; in mprsas_abort_complete() local
1525 cm = TAILQ_FIRST(&tm->cm_targ->timedout_commands); in mprsas_abort_complete()
1526 if (cm == NULL) { in mprsas_abort_complete()
1535 } else if (le16toh(req->TaskMID) != cm->cm_desc.Default.SMID) { in mprsas_abort_complete()
1539 mprsas_send_abort(sc, tm, cm); in mprsas_abort_complete()
1558 struct mpr_command *cm) in mprsas_send_abort() argument
1564 targ = cm->cm_targ; in mprsas_send_abort()
1568 __func__, cm->cm_ccb->ccb_h.target_id); in mprsas_send_abort()
1572 mprsas_log_command(cm, MPR_RECOVERY|MPR_INFO, in mprsas_send_abort()
1573 "Aborting command %p\n", cm); in mprsas_send_abort()
1580 MPR_SET_LUN(req->LUN, cm->cm_ccb->ccb_h.target_lun); in mprsas_send_abort()
1582 req->TaskMID = htole16(cm->cm_desc.Default.SMID); in mprsas_send_abort()
1587 tm->cm_targ = cm->cm_targ; in mprsas_send_abort()
1588 tm->cm_lun = cm->cm_lun; in mprsas_send_abort()
1606 err, cm, req->TaskMID); in mprsas_send_abort()
1616 struct mpr_command *cm; in mprsas_scsiio_timeout() local
1619 cm = (struct mpr_command *)data; in mprsas_scsiio_timeout()
1620 sc = cm->cm_sc; in mprsas_scsiio_timeout()
1621 ccb = cm->cm_ccb; in mprsas_scsiio_timeout()
1627 mpr_dprint(sc, MPR_XINFO|MPR_RECOVERY, "Timeout checking cm %p\n", cm); in mprsas_scsiio_timeout()
1635 if (cm->cm_flags & MPR_CM_FLAGS_ON_RECOVERY) { in mprsas_scsiio_timeout()
1636 mprsas_log_command(cm, MPR_XINFO, in mprsas_scsiio_timeout()
1637 "SCSI command %p almost timed out\n", cm); in mprsas_scsiio_timeout()
1641 if (cm->cm_ccb == NULL) { in mprsas_scsiio_timeout()
1646 targ = cm->cm_targ; in mprsas_scsiio_timeout()
1650 mprsas_log_command(cm, MPR_INFO|MPR_RECOVERY, in mprsas_scsiio_timeout()
1663 mprsas_set_ccbstatus(cm->cm_ccb, CAM_CMD_TIMEOUT); in mprsas_scsiio_timeout()
1664 cm->cm_flags |= MPR_CM_FLAGS_ON_RECOVERY | MPR_CM_FLAGS_TIMEDOUT; in mprsas_scsiio_timeout()
1665 TAILQ_INSERT_TAIL(&targ->timedout_commands, cm, cm_recovery); in mprsas_scsiio_timeout()
1673 cm, targ->tm); in mprsas_scsiio_timeout()
1677 cm->cm_desc.Default.SMID); in mprsas_scsiio_timeout()
1679 cm, targ->tm); in mprsas_scsiio_timeout()
1682 mprsas_send_abort(sc, targ->tm, cm); in mprsas_scsiio_timeout()
1694 "timedout cm %p failed to allocate a tm\n", cm); in mprsas_scsiio_timeout()
1707 mprsas_build_nvme_unmap(struct mpr_softc *sc, struct mpr_command *cm, in mprsas_build_nvme_unmap() argument
1764 TAILQ_INSERT_TAIL(&cm->cm_prp_page_list, prp_page_info, prp_page_link); in mprsas_build_nvme_unmap()
1783 req = (Mpi26NVMeEncapsulatedRequest_t *)cm->cm_req; in mprsas_build_nvme_unmap()
1789 htole32((uint32_t)((uint64_t)cm->cm_sense_busaddr >> 32)); in mprsas_build_nvme_unmap()
1791 htole32(cm->cm_sense_busaddr); in mprsas_build_nvme_unmap()
1805 cm->cm_length = data_length; in mprsas_build_nvme_unmap()
1806 cm->cm_data = NULL; in mprsas_build_nvme_unmap()
1808 cm->cm_complete = mprsas_scsiio_complete; in mprsas_build_nvme_unmap()
1809 cm->cm_complete_data = ccb; in mprsas_build_nvme_unmap()
1810 cm->cm_targ = targ; in mprsas_build_nvme_unmap()
1811 cm->cm_lun = csio->ccb_h.target_lun; in mprsas_build_nvme_unmap()
1812 cm->cm_ccb = ccb; in mprsas_build_nvme_unmap()
1814 cm->cm_desc.Default.RequestFlags = in mprsas_build_nvme_unmap()
1818 callout_reset_sbt(&cm->cm_callout, SBT_1MS * ccb->ccb_h.timeout, 0, in mprsas_build_nvme_unmap()
1819 mprsas_scsiio_timeout, cm, 0); in mprsas_build_nvme_unmap()
1823 TAILQ_INSERT_TAIL(&targ->commands, cm, cm_link); in mprsas_build_nvme_unmap()
1826 mprsas_log_command(cm, MPR_XINFO, "%s cm %p ccb %p outstanding %u\n", in mprsas_build_nvme_unmap()
1827 __func__, cm, ccb, targ->outstanding); in mprsas_build_nvme_unmap()
1829 mpr_build_nvme_prp(sc, cm, req, in mprsas_build_nvme_unmap()
1831 mpr_map_command(sc, cm); in mprsas_build_nvme_unmap()
1847 struct mpr_command *cm; in mprsas_action_scsiio() local
1936 cm = mpr_alloc_command(sc); in mprsas_action_scsiio()
1937 if (cm == NULL || (sc->mpr_flags & MPR_FLAGS_DIAGRESET)) { in mprsas_action_scsiio()
1938 if (cm != NULL) { in mprsas_action_scsiio()
1939 mpr_free_command(sc, cm); in mprsas_action_scsiio()
1958 rc = mprsas_build_nvme_unmap(sc, cm, ccb, targ); in mprsas_action_scsiio()
1960 mpr_free_command(sc, cm); in mprsas_action_scsiio()
1968 req = (MPI2_SCSI_IO_REQUEST *)cm->cm_req; in mprsas_action_scsiio()
1973 req->SenseBufferLowAddress = htole32(cm->cm_sense_busaddr); in mprsas_action_scsiio()
1991 cm->cm_flags |= MPR_CM_FLAGS_DATAIN; in mprsas_action_scsiio()
1995 cm->cm_flags |= MPR_CM_FLAGS_DATAOUT; in mprsas_action_scsiio()
2032 mpr_free_command(sc, cm); in mprsas_action_scsiio()
2107 cm->cm_length = csio->dxfer_len; in mprsas_action_scsiio()
2108 if (cm->cm_length != 0) { in mprsas_action_scsiio()
2109 cm->cm_data = ccb; in mprsas_action_scsiio()
2110 cm->cm_flags |= MPR_CM_FLAGS_USE_CCB; in mprsas_action_scsiio()
2112 cm->cm_data = NULL; in mprsas_action_scsiio()
2114 cm->cm_sge = &req->SGL; in mprsas_action_scsiio()
2115 cm->cm_sglsize = (32 - 24) * 4; in mprsas_action_scsiio()
2116 cm->cm_complete = mprsas_scsiio_complete; in mprsas_action_scsiio()
2117 cm->cm_complete_data = ccb; in mprsas_action_scsiio()
2118 cm->cm_targ = targ; in mprsas_action_scsiio()
2119 cm->cm_lun = csio->ccb_h.target_lun; in mprsas_action_scsiio()
2120 cm->cm_ccb = ccb; in mprsas_action_scsiio()
2128 cm->cm_desc.FastPathSCSIIO.RequestFlags = in mprsas_action_scsiio()
2131 cm->cm_desc.FastPathSCSIIO.DevHandle = in mprsas_action_scsiio()
2135 cm->cm_desc.SCSIIO.RequestFlags = in mprsas_action_scsiio()
2138 cm->cm_desc.SCSIIO.DevHandle = htole16(targ->handle); in mprsas_action_scsiio()
2142 callout_reset_sbt(&cm->cm_callout, SBT_1MS * ccb->ccb_h.timeout, 0, in mprsas_action_scsiio()
2143 mprsas_scsiio_timeout, cm, 0); in mprsas_action_scsiio()
2147 TAILQ_INSERT_TAIL(&targ->commands, cm, cm_link); in mprsas_action_scsiio()
2150 mprsas_log_command(cm, MPR_XINFO, "%s cm %p ccb %p outstanding %u\n", in mprsas_action_scsiio()
2151 __func__, cm, ccb, targ->outstanding); in mprsas_action_scsiio()
2153 mpr_map_command(sc, cm); in mprsas_action_scsiio()
2225 struct mpr_command *cm) in mprsas_nvme_trans_status_code() argument
2229 union ccb *ccb = cm->cm_complete_data; in mprsas_nvme_trans_status_code()
2399 mprsas_complete_nvme_unmap(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_complete_nvme_unmap() argument
2405 mpi_reply =(Mpi26NVMeEncapsulatedErrorReply_t *)cm->cm_reply; in mprsas_complete_nvme_unmap()
2407 nvme_completion = (struct nvme_completion *)cm->cm_sense; in mprsas_complete_nvme_unmap()
2409 nvme_completion->status, cm); in mprsas_complete_nvme_unmap()
2415 mprsas_scsiio_complete(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_scsiio_complete() argument
2430 callout_stop(&cm->cm_callout); in mprsas_scsiio_complete()
2434 ccb = cm->cm_complete_data; in mprsas_scsiio_complete()
2437 rep = (MPI2_SCSI_IO_REPLY *)cm->cm_reply; in mprsas_scsiio_complete()
2440 "csio->dxfer_len 0x%x, csio->msg_le 0x%xn\n", cm, in mprsas_scsiio_complete()
2441 cm->cm_desc.Default.SMID, cm->cm_ccb, cm->cm_reply, in mprsas_scsiio_complete()
2442 cm->cm_targ->outstanding, csio->scsi_status, in mprsas_scsiio_complete()
2449 if (cm->cm_data != NULL) { in mprsas_scsiio_complete()
2450 if (cm->cm_flags & MPR_CM_FLAGS_DATAIN) in mprsas_scsiio_complete()
2452 else if (cm->cm_flags & MPR_CM_FLAGS_DATAOUT) in mprsas_scsiio_complete()
2454 bus_dmamap_sync(sc->buffer_dmat, cm->cm_dmamap, dir); in mprsas_scsiio_complete()
2455 bus_dmamap_unload(sc->buffer_dmat, cm->cm_dmamap); in mprsas_scsiio_complete()
2458 cm->cm_targ->completed++; in mprsas_scsiio_complete()
2459 cm->cm_targ->outstanding--; in mprsas_scsiio_complete()
2460 TAILQ_REMOVE(&cm->cm_targ->commands, cm, cm_link); in mprsas_scsiio_complete()
2463 if (cm->cm_flags & MPR_CM_FLAGS_ON_RECOVERY) { in mprsas_scsiio_complete()
2464 TAILQ_REMOVE(&cm->cm_targ->timedout_commands, cm, cm_recovery); in mprsas_scsiio_complete()
2465 KASSERT(cm->cm_state == MPR_CM_STATE_BUSY, in mprsas_scsiio_complete()
2466 ("Not busy for CM_FLAGS_TIMEDOUT: %u\n", cm->cm_state)); in mprsas_scsiio_complete()
2467 cm->cm_flags &= ~MPR_CM_FLAGS_ON_RECOVERY; in mprsas_scsiio_complete()
2468 if (cm->cm_reply != NULL) in mprsas_scsiio_complete()
2469 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2471 "ioc %x scsi %x state %x xfer %u\n", cm, cm->cm_ccb, in mprsas_scsiio_complete()
2475 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2477 cm, cm->cm_ccb); in mprsas_scsiio_complete()
2478 } else if (cm->cm_targ->tm != NULL) { in mprsas_scsiio_complete()
2479 if (cm->cm_reply != NULL) in mprsas_scsiio_complete()
2480 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2483 cm, cm->cm_ccb, le16toh(rep->IOCStatus), in mprsas_scsiio_complete()
2487 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2489 cm, cm->cm_ccb); in mprsas_scsiio_complete()
2491 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2492 "reset completed cm %p ccb %p\n", cm, cm->cm_ccb); in mprsas_scsiio_complete()
2495 if ((cm->cm_flags & MPR_CM_FLAGS_ERROR_MASK) != 0) { in mprsas_scsiio_complete()
2545 if (cm->cm_reply == NULL) { in mprsas_scsiio_complete()
2575 mpr_free_command(sc, cm); in mprsas_scsiio_complete()
2584 rep->SCSIStatus = mprsas_complete_nvme_unmap(sc, cm); in mprsas_scsiio_complete()
2588 mprsas_log_command(cm, MPR_XINFO, in mprsas_scsiio_complete()
2595 csio->resid = cm->cm_length - le32toh(rep->TransferCount); in mprsas_scsiio_complete()
2601 mprsas_log_command(cm, MPR_XINFO, "recovered error\n"); in mprsas_scsiio_complete()
2664 bcopy(cm->cm_sense, &csio->sense_data, sense_len); in mprsas_scsiio_complete()
2727 if (cm->cm_targ->devinfo == 0) in mprsas_scsiio_complete()
2733 mpr_print_scsiio_cmd(sc, cm); in mprsas_scsiio_complete()
2746 if (cm->cm_flags & MPR_CM_FLAGS_TIMEDOUT) in mprsas_scsiio_complete()
2775 if (cm->cm_targ->flags & MPRSAS_TARGET_INREMOVAL) in mprsas_scsiio_complete()
2783 target_id, cm->cm_desc.Default.SMID, in mprsas_scsiio_complete()
2785 (cm->cm_targ->flags & MPRSAS_TARGET_INREMOVAL) ? " departing" : ""); in mprsas_scsiio_complete()
2802 mprsas_log_command(cm, MPR_XINFO, in mprsas_scsiio_complete()
2807 csio->resid = cm->cm_length; in mprsas_scsiio_complete()
2819 mpr_sc_failed_io_info(sc, csio, rep, cm->cm_targ); in mprsas_scsiio_complete()
2839 if (cm->cm_targ->flags & MPRSAS_TARGET_INREMOVAL) { in mprsas_scsiio_complete()
2840 if (TAILQ_FIRST(&cm->cm_targ->commands) == NULL && in mprsas_scsiio_complete()
2841 cm->cm_targ->pending_remove_tm != NULL) { in mprsas_scsiio_complete()
2844 cm->cm_targ->tid, cm->cm_targ->handle); in mprsas_scsiio_complete()
2845 mpr_map_command(sc, cm->cm_targ->pending_remove_tm); in mprsas_scsiio_complete()
2846 cm->cm_targ->pending_remove_tm = NULL; in mprsas_scsiio_complete()
2850 mpr_free_command(sc, cm); in mprsas_scsiio_complete()
2855 mprsas_smpio_complete(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_smpio_complete() argument
2862 ccb = cm->cm_complete_data; in mprsas_smpio_complete()
2870 if ((cm->cm_flags & MPR_CM_FLAGS_ERROR_MASK) != 0) { in mprsas_smpio_complete()
2872 "request!\n", __func__, cm->cm_flags); in mprsas_smpio_complete()
2877 rpl = (MPI2_SMP_PASSTHROUGH_REPLY *)cm->cm_reply; in mprsas_smpio_complete()
2884 req = (MPI2_SMP_PASSTHROUGH_REQUEST *)cm->cm_req; in mprsas_smpio_complete()
2910 bus_dmamap_sync(sc->buffer_dmat, cm->cm_dmamap, in mprsas_smpio_complete()
2912 bus_dmamap_unload(sc->buffer_dmat, cm->cm_dmamap); in mprsas_smpio_complete()
2913 mpr_free_command(sc, cm); in mprsas_smpio_complete()
2920 struct mpr_command *cm; in mprsas_send_smpcmd() local
2989 cm = mpr_alloc_command(sc); in mprsas_send_smpcmd()
2990 if (cm == NULL) { in mprsas_send_smpcmd()
2998 req = (MPI2_SMP_PASSTHROUGH_REQUEST *)cm->cm_req; in mprsas_send_smpcmd()
3012 mpr_init_sge(cm, req, &req->SGL); in mprsas_send_smpcmd()
3018 cm->cm_uio.uio_iov = cm->cm_iovec; in mprsas_send_smpcmd()
3019 cm->cm_uio.uio_iovcnt = 2; in mprsas_send_smpcmd()
3020 cm->cm_uio.uio_segflg = UIO_SYSSPACE; in mprsas_send_smpcmd()
3027 cm->cm_uio.uio_rw = UIO_WRITE; in mprsas_send_smpcmd()
3029 cm->cm_iovec[0].iov_base = request; in mprsas_send_smpcmd()
3030 cm->cm_iovec[0].iov_len = le16toh(req->RequestDataLength); in mprsas_send_smpcmd()
3031 cm->cm_iovec[1].iov_base = response; in mprsas_send_smpcmd()
3032 cm->cm_iovec[1].iov_len = ccb->smpio.smp_response_len; in mprsas_send_smpcmd()
3034 cm->cm_uio.uio_resid = cm->cm_iovec[0].iov_len + in mprsas_send_smpcmd()
3035 cm->cm_iovec[1].iov_len; in mprsas_send_smpcmd()
3042 cm->cm_max_segs = 2; in mprsas_send_smpcmd()
3044 cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; in mprsas_send_smpcmd()
3045 cm->cm_complete = mprsas_smpio_complete; in mprsas_send_smpcmd()
3046 cm->cm_complete_data = ccb; in mprsas_send_smpcmd()
3054 cm->cm_flags |= MPR_CM_FLAGS_USE_UIO | MPR_CM_FLAGS_SMP_PASS | in mprsas_send_smpcmd()
3069 error = mpr_map_command(sc, cm); in mprsas_send_smpcmd()
3079 mpr_free_command(sc, cm); in mprsas_send_smpcmd()
3482 struct mpr_command *cm; in mprsas_send_portenable() local
3486 if ((cm = mpr_alloc_command(sc)) == NULL) in mprsas_send_portenable()
3488 request = (MPI2_PORT_ENABLE_REQUEST *)cm->cm_req; in mprsas_send_portenable()
3492 cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; in mprsas_send_portenable()
3493 cm->cm_complete = mprsas_portenable_complete; in mprsas_send_portenable()
3494 cm->cm_data = NULL; in mprsas_send_portenable()
3495 cm->cm_sge = NULL; in mprsas_send_portenable()
3497 mpr_map_command(sc, cm); in mprsas_send_portenable()
3500 cm, cm->cm_req, cm->cm_complete); in mprsas_send_portenable()
3505 mprsas_portenable_complete(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_portenable_complete() argument
3518 if ((cm->cm_flags & MPR_CM_FLAGS_ERROR_MASK) != 0) { in mprsas_portenable_complete()
3520 "This should not happen!\n", __func__, cm->cm_flags); in mprsas_portenable_complete()
3523 reply = (MPI2_PORT_ENABLE_REPLY *)cm->cm_reply; in mprsas_portenable_complete()
3530 mpr_free_command(sc, cm); in mprsas_portenable_complete()