Lines Matching refs:cm
121 static void mprsas_abort_complete(struct mpr_softc *sc, struct mpr_command *cm);
127 struct mpr_command *cm);
132 struct mpr_command *cm);
134 static void mprsas_smpio_complete(struct mpr_softc *sc, struct mpr_command *cm);
301 mprsas_log_command(struct mpr_command *cm, u_int level, const char *fmt, ...) in mprsas_log_command() argument
307 if (cm == NULL) in mprsas_log_command()
311 if ((cm->cm_sc->mpr_debug & level) == 0) in mprsas_log_command()
318 if (cm->cm_ccb != NULL) { in mprsas_log_command()
319 xpt_path_sbuf(cm->cm_ccb->csio.ccb_h.path, &sb); in mprsas_log_command()
320 if (cm->cm_ccb->ccb_h.func_code == XPT_SCSI_IO) { in mprsas_log_command()
321 scsi_command_string(&cm->cm_ccb->csio, &sb); in mprsas_log_command()
323 cm->cm_ccb->csio.dxfer_len); in mprsas_log_command()
327 cam_sim_name(cm->cm_sc->sassc->sim), in mprsas_log_command()
328 cam_sim_unit(cm->cm_sc->sassc->sim), in mprsas_log_command()
329 cam_sim_bus(cm->cm_sc->sassc->sim), in mprsas_log_command()
330 cm->cm_targ ? cm->cm_targ->tid : 0xFFFFFFFF, in mprsas_log_command()
331 cm->cm_lun); in mprsas_log_command()
334 sbuf_printf(&sb, "SMID %u ", cm->cm_desc.Default.SMID); in mprsas_log_command()
337 mpr_print_field(cm->cm_sc, "%s", sbuf_data(&sb)); in mprsas_log_command()
443 struct mpr_command *cm; in mprsas_prepare_volume_remove() local
460 cm = mprsas_alloc_tm(sc); in mprsas_prepare_volume_remove()
461 if (cm == NULL) { in mprsas_prepare_volume_remove()
469 req = (MPI2_SCSI_TASK_MANAGE_REQUEST *)cm->cm_req; in mprsas_prepare_volume_remove()
482 cm->cm_targ = targ; in mprsas_prepare_volume_remove()
483 cm->cm_data = NULL; in mprsas_prepare_volume_remove()
484 cm->cm_complete = mprsas_remove_volume; in mprsas_prepare_volume_remove()
485 cm->cm_complete_data = (void *)(uintptr_t)handle; in mprsas_prepare_volume_remove()
489 mprsas_prepare_for_tm(sc, cm, targ, CAM_LUN_WILDCARD); in mprsas_prepare_volume_remove()
491 mpr_map_command(sc, cm); in mprsas_prepare_volume_remove()
1107 struct mpr_command *cm; in mprsas_complete_all_commands() local
1116 cm = &sc->commands[i]; in mprsas_complete_all_commands()
1117 if (cm->cm_state == MPR_CM_STATE_FREE) in mprsas_complete_all_commands()
1120 cm->cm_state = MPR_CM_STATE_BUSY; in mprsas_complete_all_commands()
1121 cm->cm_reply = NULL; in mprsas_complete_all_commands()
1124 if (cm->cm_flags & MPR_CM_FLAGS_SATA_ID_TIMEOUT) { in mprsas_complete_all_commands()
1125 MPASS(cm->cm_data); in mprsas_complete_all_commands()
1126 free(cm->cm_data, M_MPR); in mprsas_complete_all_commands()
1127 cm->cm_data = NULL; in mprsas_complete_all_commands()
1130 if (cm->cm_flags & MPR_CM_FLAGS_POLLED) in mprsas_complete_all_commands()
1131 cm->cm_flags |= MPR_CM_FLAGS_COMPLETE; in mprsas_complete_all_commands()
1133 if (cm->cm_complete != NULL) { in mprsas_complete_all_commands()
1134 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_complete_all_commands()
1136 cm, cm->cm_state, cm->cm_ccb); in mprsas_complete_all_commands()
1137 cm->cm_complete(sc, cm); in mprsas_complete_all_commands()
1139 } else if (cm->cm_flags & MPR_CM_FLAGS_WAKEUP) { in mprsas_complete_all_commands()
1140 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_complete_all_commands()
1142 cm, cm->cm_state, cm->cm_ccb); in mprsas_complete_all_commands()
1143 wakeup(cm); in mprsas_complete_all_commands()
1147 if ((completed == 0) && (cm->cm_state != MPR_CM_STATE_FREE)) { in mprsas_complete_all_commands()
1149 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_complete_all_commands()
1151 "reset\n", cm, cm->cm_state, cm->cm_flags, in mprsas_complete_all_commands()
1152 cm->cm_ccb); in mprsas_complete_all_commands()
1224 struct mpr_command *cm; in mprsas_logical_unit_reset_complete() local
1274 TAILQ_FOREACH(cm, &targ->commands, cm_link) { in mprsas_logical_unit_reset_complete()
1275 if (cm->cm_lun == tm->cm_lun) in mprsas_logical_unit_reset_complete()
1292 cm = TAILQ_FIRST(&targ->timedout_commands); in mprsas_logical_unit_reset_complete()
1293 if (cm) { in mprsas_logical_unit_reset_complete()
1296 mprsas_send_abort(sc, tm, cm); in mprsas_logical_unit_reset_complete()
1475 struct mpr_command *cm; in mprsas_abort_complete() local
1524 cm = TAILQ_FIRST(&tm->cm_targ->timedout_commands); in mprsas_abort_complete()
1525 if (cm == NULL) { in mprsas_abort_complete()
1534 } else if (le16toh(req->TaskMID) != cm->cm_desc.Default.SMID) { in mprsas_abort_complete()
1538 mprsas_send_abort(sc, tm, cm); in mprsas_abort_complete()
1557 struct mpr_command *cm) in mprsas_send_abort() argument
1563 targ = cm->cm_targ; in mprsas_send_abort()
1567 __func__, cm->cm_ccb->ccb_h.target_id); in mprsas_send_abort()
1571 mprsas_log_command(cm, MPR_RECOVERY|MPR_INFO, in mprsas_send_abort()
1572 "Aborting command %p\n", cm); in mprsas_send_abort()
1579 MPR_SET_LUN(req->LUN, cm->cm_ccb->ccb_h.target_lun); in mprsas_send_abort()
1581 req->TaskMID = htole16(cm->cm_desc.Default.SMID); in mprsas_send_abort()
1586 tm->cm_targ = cm->cm_targ; in mprsas_send_abort()
1587 tm->cm_lun = cm->cm_lun; in mprsas_send_abort()
1605 err, cm, req->TaskMID); in mprsas_send_abort()
1615 struct mpr_command *cm; in mprsas_scsiio_timeout() local
1618 cm = (struct mpr_command *)data; in mprsas_scsiio_timeout()
1619 sc = cm->cm_sc; in mprsas_scsiio_timeout()
1620 ccb = cm->cm_ccb; in mprsas_scsiio_timeout()
1626 mpr_dprint(sc, MPR_XINFO|MPR_RECOVERY, "Timeout checking cm %p\n", cm); in mprsas_scsiio_timeout()
1634 if (cm->cm_flags & MPR_CM_FLAGS_ON_RECOVERY) { in mprsas_scsiio_timeout()
1635 mprsas_log_command(cm, MPR_XINFO, in mprsas_scsiio_timeout()
1636 "SCSI command %p almost timed out\n", cm); in mprsas_scsiio_timeout()
1640 if (cm->cm_ccb == NULL) { in mprsas_scsiio_timeout()
1645 targ = cm->cm_targ; in mprsas_scsiio_timeout()
1649 mprsas_log_command(cm, MPR_INFO|MPR_RECOVERY, in mprsas_scsiio_timeout()
1662 mprsas_set_ccbstatus(cm->cm_ccb, CAM_CMD_TIMEOUT); in mprsas_scsiio_timeout()
1663 cm->cm_flags |= MPR_CM_FLAGS_ON_RECOVERY | MPR_CM_FLAGS_TIMEDOUT; in mprsas_scsiio_timeout()
1664 TAILQ_INSERT_TAIL(&targ->timedout_commands, cm, cm_recovery); in mprsas_scsiio_timeout()
1672 cm, targ->tm); in mprsas_scsiio_timeout()
1676 cm->cm_desc.Default.SMID); in mprsas_scsiio_timeout()
1678 cm, targ->tm); in mprsas_scsiio_timeout()
1681 mprsas_send_abort(sc, targ->tm, cm); in mprsas_scsiio_timeout()
1693 "timedout cm %p failed to allocate a tm\n", cm); in mprsas_scsiio_timeout()
1706 mprsas_build_nvme_unmap(struct mpr_softc *sc, struct mpr_command *cm, in mprsas_build_nvme_unmap() argument
1763 TAILQ_INSERT_TAIL(&cm->cm_prp_page_list, prp_page_info, prp_page_link); in mprsas_build_nvme_unmap()
1782 req = (Mpi26NVMeEncapsulatedRequest_t *)cm->cm_req; in mprsas_build_nvme_unmap()
1788 htole32((uint32_t)((uint64_t)cm->cm_sense_busaddr >> 32)); in mprsas_build_nvme_unmap()
1790 htole32(cm->cm_sense_busaddr); in mprsas_build_nvme_unmap()
1804 cm->cm_length = data_length; in mprsas_build_nvme_unmap()
1805 cm->cm_data = NULL; in mprsas_build_nvme_unmap()
1807 cm->cm_complete = mprsas_scsiio_complete; in mprsas_build_nvme_unmap()
1808 cm->cm_complete_data = ccb; in mprsas_build_nvme_unmap()
1809 cm->cm_targ = targ; in mprsas_build_nvme_unmap()
1810 cm->cm_lun = csio->ccb_h.target_lun; in mprsas_build_nvme_unmap()
1811 cm->cm_ccb = ccb; in mprsas_build_nvme_unmap()
1813 cm->cm_desc.Default.RequestFlags = in mprsas_build_nvme_unmap()
1817 callout_reset_sbt(&cm->cm_callout, SBT_1MS * ccb->ccb_h.timeout, 0, in mprsas_build_nvme_unmap()
1818 mprsas_scsiio_timeout, cm, 0); in mprsas_build_nvme_unmap()
1822 TAILQ_INSERT_TAIL(&targ->commands, cm, cm_link); in mprsas_build_nvme_unmap()
1825 mprsas_log_command(cm, MPR_XINFO, "%s cm %p ccb %p outstanding %u\n", in mprsas_build_nvme_unmap()
1826 __func__, cm, ccb, targ->outstanding); in mprsas_build_nvme_unmap()
1828 mpr_build_nvme_prp(sc, cm, req, in mprsas_build_nvme_unmap()
1830 mpr_map_command(sc, cm); in mprsas_build_nvme_unmap()
1846 struct mpr_command *cm; in mprsas_action_scsiio() local
1935 cm = mpr_alloc_command(sc); in mprsas_action_scsiio()
1936 if (cm == NULL || (sc->mpr_flags & MPR_FLAGS_DIAGRESET)) { in mprsas_action_scsiio()
1937 if (cm != NULL) { in mprsas_action_scsiio()
1938 mpr_free_command(sc, cm); in mprsas_action_scsiio()
1957 rc = mprsas_build_nvme_unmap(sc, cm, ccb, targ); in mprsas_action_scsiio()
1959 mpr_free_command(sc, cm); in mprsas_action_scsiio()
1967 req = (MPI2_SCSI_IO_REQUEST *)cm->cm_req; in mprsas_action_scsiio()
1972 req->SenseBufferLowAddress = htole32(cm->cm_sense_busaddr); in mprsas_action_scsiio()
1990 cm->cm_flags |= MPR_CM_FLAGS_DATAIN; in mprsas_action_scsiio()
1994 cm->cm_flags |= MPR_CM_FLAGS_DATAOUT; in mprsas_action_scsiio()
2031 mpr_free_command(sc, cm); in mprsas_action_scsiio()
2106 cm->cm_length = csio->dxfer_len; in mprsas_action_scsiio()
2107 if (cm->cm_length != 0) { in mprsas_action_scsiio()
2108 cm->cm_data = ccb; in mprsas_action_scsiio()
2109 cm->cm_flags |= MPR_CM_FLAGS_USE_CCB; in mprsas_action_scsiio()
2111 cm->cm_data = NULL; in mprsas_action_scsiio()
2113 cm->cm_sge = &req->SGL; in mprsas_action_scsiio()
2114 cm->cm_sglsize = (32 - 24) * 4; in mprsas_action_scsiio()
2115 cm->cm_complete = mprsas_scsiio_complete; in mprsas_action_scsiio()
2116 cm->cm_complete_data = ccb; in mprsas_action_scsiio()
2117 cm->cm_targ = targ; in mprsas_action_scsiio()
2118 cm->cm_lun = csio->ccb_h.target_lun; in mprsas_action_scsiio()
2119 cm->cm_ccb = ccb; in mprsas_action_scsiio()
2127 cm->cm_desc.FastPathSCSIIO.RequestFlags = in mprsas_action_scsiio()
2130 cm->cm_desc.FastPathSCSIIO.DevHandle = in mprsas_action_scsiio()
2134 cm->cm_desc.SCSIIO.RequestFlags = in mprsas_action_scsiio()
2137 cm->cm_desc.SCSIIO.DevHandle = htole16(targ->handle); in mprsas_action_scsiio()
2141 callout_reset_sbt(&cm->cm_callout, SBT_1MS * ccb->ccb_h.timeout, 0, in mprsas_action_scsiio()
2142 mprsas_scsiio_timeout, cm, 0); in mprsas_action_scsiio()
2146 TAILQ_INSERT_TAIL(&targ->commands, cm, cm_link); in mprsas_action_scsiio()
2149 mprsas_log_command(cm, MPR_XINFO, "%s cm %p ccb %p outstanding %u\n", in mprsas_action_scsiio()
2150 __func__, cm, ccb, targ->outstanding); in mprsas_action_scsiio()
2152 mpr_map_command(sc, cm); in mprsas_action_scsiio()
2224 struct mpr_command *cm) in mprsas_nvme_trans_status_code() argument
2228 union ccb *ccb = cm->cm_complete_data; in mprsas_nvme_trans_status_code()
2398 mprsas_complete_nvme_unmap(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_complete_nvme_unmap() argument
2404 mpi_reply =(Mpi26NVMeEncapsulatedErrorReply_t *)cm->cm_reply; in mprsas_complete_nvme_unmap()
2406 nvme_completion = (struct nvme_completion *)cm->cm_sense; in mprsas_complete_nvme_unmap()
2408 nvme_completion->status, cm); in mprsas_complete_nvme_unmap()
2414 mprsas_scsiio_complete(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_scsiio_complete() argument
2429 callout_stop(&cm->cm_callout); in mprsas_scsiio_complete()
2433 ccb = cm->cm_complete_data; in mprsas_scsiio_complete()
2436 rep = (MPI2_SCSI_IO_REPLY *)cm->cm_reply; in mprsas_scsiio_complete()
2439 "csio->dxfer_len 0x%x, csio->msg_le 0x%xn\n", cm, in mprsas_scsiio_complete()
2440 cm->cm_desc.Default.SMID, cm->cm_ccb, cm->cm_reply, in mprsas_scsiio_complete()
2441 cm->cm_targ->outstanding, csio->scsi_status, in mprsas_scsiio_complete()
2448 if (cm->cm_data != NULL) { in mprsas_scsiio_complete()
2449 if (cm->cm_flags & MPR_CM_FLAGS_DATAIN) in mprsas_scsiio_complete()
2451 else if (cm->cm_flags & MPR_CM_FLAGS_DATAOUT) in mprsas_scsiio_complete()
2453 bus_dmamap_sync(sc->buffer_dmat, cm->cm_dmamap, dir); in mprsas_scsiio_complete()
2454 bus_dmamap_unload(sc->buffer_dmat, cm->cm_dmamap); in mprsas_scsiio_complete()
2457 cm->cm_targ->completed++; in mprsas_scsiio_complete()
2458 cm->cm_targ->outstanding--; in mprsas_scsiio_complete()
2459 TAILQ_REMOVE(&cm->cm_targ->commands, cm, cm_link); in mprsas_scsiio_complete()
2462 if (cm->cm_flags & MPR_CM_FLAGS_ON_RECOVERY) { in mprsas_scsiio_complete()
2463 TAILQ_REMOVE(&cm->cm_targ->timedout_commands, cm, cm_recovery); in mprsas_scsiio_complete()
2464 KASSERT(cm->cm_state == MPR_CM_STATE_BUSY, in mprsas_scsiio_complete()
2465 ("Not busy for CM_FLAGS_TIMEDOUT: %u\n", cm->cm_state)); in mprsas_scsiio_complete()
2466 cm->cm_flags &= ~MPR_CM_FLAGS_ON_RECOVERY; in mprsas_scsiio_complete()
2467 if (cm->cm_reply != NULL) in mprsas_scsiio_complete()
2468 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2470 "ioc %x scsi %x state %x xfer %u\n", cm, cm->cm_ccb, in mprsas_scsiio_complete()
2474 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2476 cm, cm->cm_ccb); in mprsas_scsiio_complete()
2477 } else if (cm->cm_targ->tm != NULL) { in mprsas_scsiio_complete()
2478 if (cm->cm_reply != NULL) in mprsas_scsiio_complete()
2479 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2482 cm, cm->cm_ccb, le16toh(rep->IOCStatus), in mprsas_scsiio_complete()
2486 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2488 cm, cm->cm_ccb); in mprsas_scsiio_complete()
2490 mprsas_log_command(cm, MPR_RECOVERY, in mprsas_scsiio_complete()
2491 "reset completed cm %p ccb %p\n", cm, cm->cm_ccb); in mprsas_scsiio_complete()
2494 if ((cm->cm_flags & MPR_CM_FLAGS_ERROR_MASK) != 0) { in mprsas_scsiio_complete()
2544 if (cm->cm_reply == NULL) { in mprsas_scsiio_complete()
2574 mpr_free_command(sc, cm); in mprsas_scsiio_complete()
2583 rep->SCSIStatus = mprsas_complete_nvme_unmap(sc, cm); in mprsas_scsiio_complete()
2587 mprsas_log_command(cm, MPR_XINFO, in mprsas_scsiio_complete()
2594 csio->resid = cm->cm_length - le32toh(rep->TransferCount); in mprsas_scsiio_complete()
2600 mprsas_log_command(cm, MPR_XINFO, "recovered error\n"); in mprsas_scsiio_complete()
2663 bcopy(cm->cm_sense, &csio->sense_data, sense_len); in mprsas_scsiio_complete()
2726 if (cm->cm_targ->devinfo == 0) in mprsas_scsiio_complete()
2732 mpr_print_scsiio_cmd(sc, cm); in mprsas_scsiio_complete()
2745 if (cm->cm_flags & MPR_CM_FLAGS_TIMEDOUT) in mprsas_scsiio_complete()
2774 if (cm->cm_targ->flags & MPRSAS_TARGET_INREMOVAL) in mprsas_scsiio_complete()
2782 target_id, cm->cm_desc.Default.SMID, in mprsas_scsiio_complete()
2784 (cm->cm_targ->flags & MPRSAS_TARGET_INREMOVAL) ? " departing" : ""); in mprsas_scsiio_complete()
2801 mprsas_log_command(cm, MPR_XINFO, in mprsas_scsiio_complete()
2806 csio->resid = cm->cm_length; in mprsas_scsiio_complete()
2818 mpr_sc_failed_io_info(sc, csio, rep, cm->cm_targ); in mprsas_scsiio_complete()
2838 if (cm->cm_targ->flags & MPRSAS_TARGET_INREMOVAL) { in mprsas_scsiio_complete()
2839 if (TAILQ_FIRST(&cm->cm_targ->commands) == NULL && in mprsas_scsiio_complete()
2840 cm->cm_targ->pending_remove_tm != NULL) { in mprsas_scsiio_complete()
2843 cm->cm_targ->tid, cm->cm_targ->handle); in mprsas_scsiio_complete()
2844 mpr_map_command(sc, cm->cm_targ->pending_remove_tm); in mprsas_scsiio_complete()
2845 cm->cm_targ->pending_remove_tm = NULL; in mprsas_scsiio_complete()
2849 mpr_free_command(sc, cm); in mprsas_scsiio_complete()
2854 mprsas_smpio_complete(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_smpio_complete() argument
2861 ccb = cm->cm_complete_data; in mprsas_smpio_complete()
2869 if ((cm->cm_flags & MPR_CM_FLAGS_ERROR_MASK) != 0) { in mprsas_smpio_complete()
2871 "request!\n", __func__, cm->cm_flags); in mprsas_smpio_complete()
2876 rpl = (MPI2_SMP_PASSTHROUGH_REPLY *)cm->cm_reply; in mprsas_smpio_complete()
2883 req = (MPI2_SMP_PASSTHROUGH_REQUEST *)cm->cm_req; in mprsas_smpio_complete()
2909 bus_dmamap_sync(sc->buffer_dmat, cm->cm_dmamap, in mprsas_smpio_complete()
2911 bus_dmamap_unload(sc->buffer_dmat, cm->cm_dmamap); in mprsas_smpio_complete()
2912 mpr_free_command(sc, cm); in mprsas_smpio_complete()
2919 struct mpr_command *cm; in mprsas_send_smpcmd() local
2988 cm = mpr_alloc_command(sc); in mprsas_send_smpcmd()
2989 if (cm == NULL) { in mprsas_send_smpcmd()
2997 req = (MPI2_SMP_PASSTHROUGH_REQUEST *)cm->cm_req; in mprsas_send_smpcmd()
3011 mpr_init_sge(cm, req, &req->SGL); in mprsas_send_smpcmd()
3017 cm->cm_uio.uio_iov = cm->cm_iovec; in mprsas_send_smpcmd()
3018 cm->cm_uio.uio_iovcnt = 2; in mprsas_send_smpcmd()
3019 cm->cm_uio.uio_segflg = UIO_SYSSPACE; in mprsas_send_smpcmd()
3026 cm->cm_uio.uio_rw = UIO_WRITE; in mprsas_send_smpcmd()
3028 cm->cm_iovec[0].iov_base = request; in mprsas_send_smpcmd()
3029 cm->cm_iovec[0].iov_len = le16toh(req->RequestDataLength); in mprsas_send_smpcmd()
3030 cm->cm_iovec[1].iov_base = response; in mprsas_send_smpcmd()
3031 cm->cm_iovec[1].iov_len = ccb->smpio.smp_response_len; in mprsas_send_smpcmd()
3033 cm->cm_uio.uio_resid = cm->cm_iovec[0].iov_len + in mprsas_send_smpcmd()
3034 cm->cm_iovec[1].iov_len; in mprsas_send_smpcmd()
3041 cm->cm_max_segs = 2; in mprsas_send_smpcmd()
3043 cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; in mprsas_send_smpcmd()
3044 cm->cm_complete = mprsas_smpio_complete; in mprsas_send_smpcmd()
3045 cm->cm_complete_data = ccb; in mprsas_send_smpcmd()
3053 cm->cm_flags |= MPR_CM_FLAGS_USE_UIO | MPR_CM_FLAGS_SMP_PASS | in mprsas_send_smpcmd()
3068 error = mpr_map_command(sc, cm); in mprsas_send_smpcmd()
3078 mpr_free_command(sc, cm); in mprsas_send_smpcmd()
3481 struct mpr_command *cm; in mprsas_send_portenable() local
3485 if ((cm = mpr_alloc_command(sc)) == NULL) in mprsas_send_portenable()
3487 request = (MPI2_PORT_ENABLE_REQUEST *)cm->cm_req; in mprsas_send_portenable()
3491 cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; in mprsas_send_portenable()
3492 cm->cm_complete = mprsas_portenable_complete; in mprsas_send_portenable()
3493 cm->cm_data = NULL; in mprsas_send_portenable()
3494 cm->cm_sge = NULL; in mprsas_send_portenable()
3496 mpr_map_command(sc, cm); in mprsas_send_portenable()
3499 cm, cm->cm_req, cm->cm_complete); in mprsas_send_portenable()
3504 mprsas_portenable_complete(struct mpr_softc *sc, struct mpr_command *cm) in mprsas_portenable_complete() argument
3517 if ((cm->cm_flags & MPR_CM_FLAGS_ERROR_MASK) != 0) { in mprsas_portenable_complete()
3519 "This should not happen!\n", __func__, cm->cm_flags); in mprsas_portenable_complete()
3522 reply = (MPI2_PORT_ENABLE_REPLY *)cm->cm_reply; in mprsas_portenable_complete()
3529 mpr_free_command(sc, cm); in mprsas_portenable_complete()