Lines Matching refs:rcb

36 static void pqisrc_increment_io_counters(pqisrc_softstate_t *softs, rcb_t *rcb);
121 pqisrc_build_sgl(sgt_t *sg_array, rcb_t *rcb, iu_header_t *iu_hdr, in pqisrc_build_sgl() argument
125 uint32_t num_sg = OS_GET_IO_SG_COUNT(rcb); in pqisrc_build_sgl()
141 sgt->addr= OS_GET_IO_SG_ADDR(rcb,i); in pqisrc_build_sgl()
142 sgt->len= OS_GET_IO_SG_LEN(rcb,i); in pqisrc_build_sgl()
151 sg_chain = rcb->sg_chain_virt; in pqisrc_build_sgl()
152 sgt->addr = rcb->sg_chain_dma; in pqisrc_build_sgl()
158 sgt->addr = OS_GET_IO_SG_ADDR(rcb,i); in pqisrc_build_sgl()
159 sgt->len = OS_GET_IO_SG_LEN(rcb,i); in pqisrc_build_sgl()
204 pqisrc_build_raid_io(pqisrc_softstate_t *softs, rcb_t *rcb, in pqisrc_build_raid_io() argument
211 raid_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb); in pqisrc_build_raid_io()
214 raid_req->request_id = rcb->tag; in pqisrc_build_raid_io()
216 raid_req->buffer_length = GET_SCSI_BUFFLEN(rcb); in pqisrc_build_raid_io()
217 memcpy(raid_req->lun_number, rcb->dvp->scsi3addr, in pqisrc_build_raid_io()
220 raid_req->data_direction = rcb->data_dir; in pqisrc_build_raid_io()
225 raid_req->task_attribute = OS_GET_TASK_ATTR(rcb); in pqisrc_build_raid_io()
230 raid_req->ml_device_lun_number = (uint8_t)rcb->cm_ccb->ccb_h.target_lun; in pqisrc_build_raid_io()
234 memcpy(raid_req->cmd.cdb, rcb->cdbp, rcb->cmdlen); in pqisrc_build_raid_io()
237 for(i = 0; i < rcb->cmdlen ; i++) in pqisrc_build_raid_io()
241 switch (rcb->cmdlen) { in pqisrc_build_raid_io()
269 raid_req->partial = pqisrc_build_sgl(&raid_req->sg_descriptors[0], rcb, in pqisrc_build_raid_io()
278 rcb->success_cmp_callback = pqisrc_process_io_response_success; in pqisrc_build_raid_io()
279 rcb->error_cmp_callback = pqisrc_process_raid_response_error; in pqisrc_build_raid_io()
280 rcb->resp_qid = raid_req->response_queue_id; in pqisrc_build_raid_io()
337 rcb_t *rcb, uint32_t num_elem_alloted) in pqisrc_build_aio_common() argument
342 aio_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb); in pqisrc_build_aio_common()
345 aio_req->req_id = rcb->tag; in pqisrc_build_aio_common()
348 aio_req->nexus = rcb->ioaccel_handle; in pqisrc_build_aio_common()
349 aio_req->buf_len = GET_SCSI_BUFFLEN(rcb); in pqisrc_build_aio_common()
350 aio_req->cmd_flags.data_dir = rcb->data_dir; in pqisrc_build_aio_common()
354 aio_req->attr_prio.task_attr = OS_GET_TASK_ATTR(rcb); in pqisrc_build_aio_common()
358 aio_req->cdb_len = rcb->cmdlen; in pqisrc_build_aio_common()
360 if (rcb->cmdlen > sizeof(aio_req->cdb)) in pqisrc_build_aio_common()
361 rcb->cmdlen = sizeof(aio_req->cdb); in pqisrc_build_aio_common()
362 memcpy(aio_req->cdb, rcb->cdbp, rcb->cmdlen); in pqisrc_build_aio_common()
365 uint64_t lun = rcb->cm_ccb->ccb_h.target_lun; in pqisrc_build_aio_common()
366 if (lun && (rcb->dvp->is_multi_lun)) { in pqisrc_build_aio_common()
374 if (rcb->encrypt_enable == true) { in pqisrc_build_aio_common()
377 LE_16(rcb->enc_info.data_enc_key_index); in pqisrc_build_aio_common()
379 LE_32(rcb->enc_info.encrypt_tweak_lower); in pqisrc_build_aio_common()
381 LE_32(rcb->enc_info.encrypt_tweak_upper); in pqisrc_build_aio_common()
389 aio_req->cmd_flags.partial = pqisrc_build_sgl(&aio_req->sg_desc[0], rcb, in pqisrc_build_aio_common()
399 rcb->success_cmp_callback = pqisrc_process_io_response_success; in pqisrc_build_aio_common()
400 rcb->error_cmp_callback = pqisrc_process_aio_response_error; in pqisrc_build_aio_common()
401 rcb->resp_qid = aio_req->response_queue_id; in pqisrc_build_aio_common()
407 pqisrc_show_aio_common(pqisrc_softstate_t *softs, rcb_t *rcb, in pqisrc_show_aio_common() argument
411 DBG_INFO("AIO IU Content, tag# 0x%08x", rcb->tag); in pqisrc_show_aio_common()
432 pqisrc_show_cdb(softs, "AIOC", rcb, aio_req->cdb); in pqisrc_show_aio_common()
451 pqi_aio_raid1_write_req_t *aio_req, rcb_t *rcb, in pqisrc_build_aio_R1_write() argument
455 if (!rcb->dvp) { in pqisrc_build_aio_R1_write()
459 if (!rcb->dvp->raid_map) { in pqisrc_build_aio_R1_write()
466 aio_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb); in pqisrc_build_aio_R1_write()
469 aio_req->req_id = rcb->tag; in pqisrc_build_aio_R1_write()
470 aio_req->volume_id = (LE_32(rcb->dvp->scsi3addr[0]) & 0x3FFF); in pqisrc_build_aio_R1_write()
471 aio_req->nexus_1 = rcb->it_nexus[0]; in pqisrc_build_aio_R1_write()
472 aio_req->nexus_2 = rcb->it_nexus[1]; in pqisrc_build_aio_R1_write()
473 aio_req->nexus_3 = rcb->it_nexus[2]; in pqisrc_build_aio_R1_write()
474 aio_req->buf_len = GET_SCSI_BUFFLEN(rcb); in pqisrc_build_aio_R1_write()
475 aio_req->cmd_flags.data_dir = rcb->data_dir; in pqisrc_build_aio_R1_write()
479 aio_req->attr_prio.task_attr = OS_GET_TASK_ATTR(rcb); in pqisrc_build_aio_R1_write()
482 if(rcb->cmdlen > sizeof(aio_req->cdb)) in pqisrc_build_aio_R1_write()
483 rcb->cmdlen = sizeof(aio_req->cdb); in pqisrc_build_aio_R1_write()
484 memcpy(aio_req->cdb, rcb->cdbp, rcb->cmdlen); in pqisrc_build_aio_R1_write()
486 aio_req->cdb_len = rcb->cmdlen; in pqisrc_build_aio_R1_write()
487 aio_req->num_drives = LE_16(rcb->dvp->raid_map->layout_map_count); in pqisrc_build_aio_R1_write()
490 if (rcb->encrypt_enable == true) { in pqisrc_build_aio_R1_write()
493 LE_16(rcb->enc_info.data_enc_key_index); in pqisrc_build_aio_R1_write()
495 LE_32(rcb->enc_info.encrypt_tweak_lower); in pqisrc_build_aio_R1_write()
497 LE_32(rcb->enc_info.encrypt_tweak_upper); in pqisrc_build_aio_R1_write()
505 aio_req->cmd_flags.partial = pqisrc_build_sgl(&aio_req->sg_desc[0], rcb, in pqisrc_build_aio_R1_write()
516 rcb->success_cmp_callback = pqisrc_process_io_response_success; in pqisrc_build_aio_R1_write()
517 rcb->error_cmp_callback = pqisrc_process_aio_response_error; in pqisrc_build_aio_R1_write()
518 rcb->resp_qid = aio_req->response_queue_id; in pqisrc_build_aio_R1_write()
525 pqisrc_show_aio_R1_write(pqisrc_softstate_t *softs, rcb_t *rcb, in pqisrc_show_aio_R1_write() argument
530 DBG_INFO("AIO RAID1 Write IU Content, tag# 0x%08x", rcb->tag); in pqisrc_show_aio_R1_write()
552 pqisrc_show_cdb(softs, "AIOR1W", rcb, aio_req->cdb); in pqisrc_show_aio_R1_write()
573 pqi_aio_raid5or6_write_req_t *aio_req, rcb_t *rcb, in pqisrc_build_aio_R5or6_write() argument
581 num_data_disks = LE_16(rcb->dvp->raid_map->data_disks_per_row); in pqisrc_build_aio_R5or6_write()
582 num_metadata_disks = LE_16(rcb->dvp->raid_map->metadata_disks_per_row); in pqisrc_build_aio_R5or6_write()
585 index = PQISRC_DIV_ROUND_UP(rcb->raid_map_index + 1, total_disks); in pqisrc_build_aio_R5or6_write()
589 switch (rcb->dvp->raid_level) { in pqisrc_build_aio_R5or6_write()
602 aio_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb); in pqisrc_build_aio_R5or6_write()
605 aio_req->req_id = rcb->tag; in pqisrc_build_aio_R5or6_write()
606 aio_req->volume_id = (LE_32(rcb->dvp->scsi3addr[0]) & 0x3FFF); in pqisrc_build_aio_R5or6_write()
607 aio_req->data_it_nexus = rcb->dvp->raid_map->dev_data[rcb->raid_map_index].ioaccel_handle; in pqisrc_build_aio_R5or6_write()
609 rcb->dvp->raid_map->dev_data[index].ioaccel_handle; in pqisrc_build_aio_R5or6_write()
613 rcb->dvp->raid_map->dev_data[index + 1].ioaccel_handle; in pqisrc_build_aio_R5or6_write()
616 rcb->dvp->raid_map->dev_data[rcb->raid_map_index].xor_mult[1]; in pqisrc_build_aio_R5or6_write()
617 aio_req->row = rcb->row_num; in pqisrc_build_aio_R5or6_write()
620 aio_req->buf_len = GET_SCSI_BUFFLEN(rcb); in pqisrc_build_aio_R5or6_write()
621 aio_req->cmd_flags.data_dir = rcb->data_dir; in pqisrc_build_aio_R5or6_write()
625 aio_req->attr_prio.task_attr = OS_GET_TASK_ATTR(rcb); in pqisrc_build_aio_R5or6_write()
628 if (rcb->cmdlen > sizeof(aio_req->cdb)) in pqisrc_build_aio_R5or6_write()
629 rcb->cmdlen = sizeof(aio_req->cdb); in pqisrc_build_aio_R5or6_write()
630 memcpy(aio_req->cdb, rcb->cdbp, rcb->cmdlen); in pqisrc_build_aio_R5or6_write()
632 aio_req->cdb_len = rcb->cmdlen; in pqisrc_build_aio_R5or6_write()
643 if (rcb->encrypt_enable == true) { in pqisrc_build_aio_R5or6_write()
646 LE_16(rcb->enc_info.data_enc_key_index); in pqisrc_build_aio_R5or6_write()
648 LE_32(rcb->enc_info.encrypt_tweak_lower); in pqisrc_build_aio_R5or6_write()
650 LE_32(rcb->enc_info.encrypt_tweak_upper); in pqisrc_build_aio_R5or6_write()
658 aio_req->cmd_flags.partial = pqisrc_build_sgl(&aio_req->sg_desc[0], rcb, in pqisrc_build_aio_R5or6_write()
668 rcb->success_cmp_callback = pqisrc_process_io_response_success; in pqisrc_build_aio_R5or6_write()
669 rcb->error_cmp_callback = pqisrc_process_aio_response_error; in pqisrc_build_aio_R5or6_write()
670 rcb->resp_qid = aio_req->response_queue_id; in pqisrc_build_aio_R5or6_write()
677 pqisrc_show_aio_R5or6_write(pqisrc_softstate_t *softs, rcb_t *rcb, in pqisrc_show_aio_R5or6_write() argument
681 DBG_INFO("AIO RAID5or6 Write IU Content, tag# 0x%08x\n", rcb->tag); in pqisrc_show_aio_R5or6_write()
706 pqisrc_show_cdb(softs, "AIOR56W", rcb, aio_req->cdb); in pqisrc_show_aio_R5or6_write()
750 pqisrc_show_aio_io(pqisrc_softstate_t *softs, rcb_t *rcb, in pqisrc_show_aio_io() argument
756 is_write = pqisrc_cdb_is_write(rcb->cdbp); in pqisrc_show_aio_io()
759 pqisrc_show_aio_common(softs, rcb, aio_req); in pqisrc_show_aio_io()
763 switch (rcb->dvp->raid_level) { in pqisrc_show_aio_io()
765 pqisrc_show_aio_common(softs, rcb, aio_req); in pqisrc_show_aio_io()
769 pqisrc_show_aio_R1_write(softs, rcb, in pqisrc_show_aio_io()
774 pqisrc_show_aio_R5or6_write(softs, rcb, in pqisrc_show_aio_io()
786 pqisrc_build_aio_io(pqisrc_softstate_t *softs, rcb_t *rcb, in pqisrc_build_aio_io() argument
792 is_write = pqisrc_cdb_is_write(rcb->cdbp); in pqisrc_build_aio_io()
795 switch (rcb->dvp->raid_level) { in pqisrc_build_aio_io()
798 rcb, num_elem_alloted); in pqisrc_build_aio_io()
804 rcb, num_elem_alloted); in pqisrc_build_aio_io()
811 rcb, num_elem_alloted); in pqisrc_build_aio_io()
815 pqisrc_build_aio_common(softs, aio_req, rcb, num_elem_alloted); in pqisrc_build_aio_io()
818 pqisrc_show_aio_io(softs, rcb, aio_req, num_elem_alloted); in pqisrc_build_aio_io()
829 pqisrc_is_parity_write_stream(pqisrc_softstate_t *softs, rcb_t *rcb) in pqisrc_is_parity_write_stream() argument
841 rc = fill_lba_for_scsi_rw(softs, rcb->cdbp , &loc); in pqisrc_is_parity_write_stream()
847 if (!pqisrc_cdb_is_write(rcb->cdbp)) { in pqisrc_is_parity_write_stream()
855 device = rcb->dvp; in pqisrc_is_parity_write_stream()
926 determine_io_path_build_bypass(pqisrc_softstate_t *softs,rcb_t *rcb) in determine_io_path_build_bypass() argument
929 pqi_scsi_dev_t *devp = rcb->dvp; in determine_io_path_build_bypass()
934 rcb->cdbp = OS_GET_CDBP(rcb); in determine_io_path_build_bypass()
936 if(!rcb->aio_retry) { in determine_io_path_build_bypass()
940 rcb->ioaccel_handle = devp->ioaccel_handle; in determine_io_path_build_bypass()
945 if (devp->offload_enabled && !pqisrc_is_parity_write_stream(softs, rcb)) { in determine_io_path_build_bypass()
946 ret = pqisrc_build_scsi_cmd_raidbypass(softs, devp, rcb); in determine_io_path_build_bypass()
952 ASSERT(rcb->cdbp == rcb->bypass_cdb); in determine_io_path_build_bypass()
963 pqisrc_get_aio_data_direction(rcb_t *rcb) in pqisrc_get_aio_data_direction() argument
965 switch (rcb->cm_ccb->ccb_h.flags & CAM_DIR_MASK) { in pqisrc_get_aio_data_direction()
974 pqisrc_get_raid_data_direction(rcb_t *rcb) in pqisrc_get_raid_data_direction() argument
976 switch (rcb->cm_ccb->ccb_h.flags & CAM_DIR_MASK) { in pqisrc_get_raid_data_direction()
986 pqisrc_build_send_io(pqisrc_softstate_t *softs,rcb_t *rcb) in pqisrc_build_send_io() argument
993 int first_qindex = OS_GET_IO_REQ_QINDEX(softs, rcb); in pqisrc_build_send_io()
998 pqi_scsi_dev_t *devp = rcb->dvp; in pqisrc_build_send_io()
1004 io_path = determine_io_path_build_bypass(softs, rcb); in pqisrc_build_send_io()
1009 rcb->data_dir = pqisrc_get_raid_data_direction(rcb); in pqisrc_build_send_io()
1014 rcb->data_dir = pqisrc_get_aio_data_direction(rcb); in pqisrc_build_send_io()
1015 if (rcb->data_dir == SOP_DATA_DIR_UNKNOWN) { in pqisrc_build_send_io()
1020 is_write = pqisrc_cdb_is_write(rcb->cdbp); in pqisrc_build_send_io()
1023 OS_GET_IO_SG_COUNT(rcb), devp, is_write, io_path); in pqisrc_build_send_io()
1063 pqisrc_build_aio_io(softs, rcb, (pqi_aio_req_t *)ib_iu, in pqisrc_build_send_io()
1067 pqisrc_build_raid_io(softs, rcb, (pqisrc_raid_req_t *)ib_iu, in pqisrc_build_send_io()
1071 rcb->req_pending = true; in pqisrc_build_send_io()
1072 rcb->req_q = ib_q; in pqisrc_build_send_io()
1073 rcb->path = io_path; in pqisrc_build_send_io()
1075 pqisrc_increment_io_counters(softs, rcb); in pqisrc_build_send_io()
1252 pqisrc_calc_disk_params(pqisrc_softstate_t *softs, aio_req_locator_t *l, rcb_t *rcb) in pqisrc_calc_disk_params() argument
1272 rcb->blocks_per_row = l->row.blks_per_row; in pqisrc_calc_disk_params()
1274 rcb->row_num = l->row.first; in pqisrc_calc_disk_params()
1304 pqisrc_set_map_row_and_idx(pqisrc_softstate_t *softs, aio_req_locator_t *l, rcb_t *rcb) in pqisrc_set_map_row_and_idx() argument
1319 rcb->raid_map_index = l->map.idx; in pqisrc_set_map_row_and_idx()
1320 rcb->raid_map_row = l->map.row; in pqisrc_set_map_row_and_idx()
1351 rcb_t *rcb) in pqisrc_set_write_mirrors() argument
1361 rcb->it_nexus[mirror] = in pqisrc_set_write_mirrors()
1446 rcb_t *rcb) in pqisrc_set_r5or6_row_and_index() argument
1458 rcb->raid_map_index = l->map.idx; in pqisrc_set_r5or6_row_and_index()
1459 rcb->raid_map_row = l->map.row; in pqisrc_set_r5or6_row_and_index()
1497 pqi_scsi_dev_t *device, rcb_t *rcb, in pqisrc_aio_req_too_big() argument
1506 if (device->is_nvme && rcb->encrypt_enable) { in pqisrc_aio_req_too_big()
1586 aio_req_locator_t *l, uint32_t disk_blk_cnt, rcb_t *rcb) in pqisrc_aio_show_locator_info() argument
1591 DBG_INFO("======= AIO Locator Content, tag#0x%08x =====\n", rcb->tag); in pqisrc_aio_show_locator_info()
1641 uint32_t disk_blk_cnt, rcb_t *rcb, uint8_t *cdb) in pqisrc_aio_build_cdb() argument
1662 rcb->cmdlen = cdb_length; in pqisrc_aio_build_cdb()
1716 pqisrc_show_cdb(pqisrc_softstate_t *softs, char *msg, rcb_t *rcb, uint8_t *cdb) in pqisrc_show_cdb() argument
1719 pqisrc_print_buffer(softs, msg, cdb, rcb->cmdlen, PRINT_FLAG_HDR_COLUMN); in pqisrc_show_cdb()
1723 pqisrc_show_rcb_details(pqisrc_softstate_t *softs, rcb_t *rcb, char *msg, void *err_info) in pqisrc_show_rcb_details() argument
1727 if (rcb == NULL || rcb->dvp == NULL) in pqisrc_show_rcb_details()
1729 DBG_ERR("Invalid rcb or dev ptr! rcb=%p\n", rcb); in pqisrc_show_rcb_details()
1733 devp = rcb->dvp; in pqisrc_show_rcb_details()
1738 pqisrc_print_buffer(softs, "host cdb", OS_GET_CDBP(rcb), rcb->cmdlen, PRINT_FLAG_HDR_COLUMN); in pqisrc_show_rcb_details()
1739 if (OS_GET_CDBP(rcb) != rcb->cdbp) in pqisrc_show_rcb_details()
1740 pqisrc_print_buffer(softs, "aio mapped cdb", rcb->cdbp, rcb->cmdlen, 0); in pqisrc_show_rcb_details()
1742 DBG_INFO("tag=0x%x dir=%u host_timeout=%ums\n", rcb->tag, in pqisrc_show_rcb_details()
1743 rcb->data_dir, (uint32_t)rcb->host_timeout_ms); in pqisrc_show_rcb_details()
1748 if (rcb->path == AIO_PATH) in pqisrc_show_rcb_details()
1750 DBG_INFO("handle=0x%x\n", rcb->ioaccel_handle); in pqisrc_show_rcb_details()
1752 rcb->row_num, rcb->blocks_per_row, rcb->raid_map_index, rcb->raid_map_row); in pqisrc_show_rcb_details()
1755 pqisrc_show_aio_error_info(softs, rcb, err_info); in pqisrc_show_rcb_details()
1761 pqisrc_show_raid_error_info(softs, rcb, err_info); in pqisrc_show_rcb_details()
1774 pqi_scsi_dev_t *device, rcb_t *rcb) in pqisrc_build_scsi_cmd_raidbypass() argument
1790 rcb->tag, device->bus, device->target, device->lun); in pqisrc_build_scsi_cmd_raidbypass()
1795 rc = fill_lba_for_scsi_rw(softs, OS_GET_CDBP(rcb), l); in pqisrc_build_scsi_cmd_raidbypass()
1809 if (!pqisrc_calc_disk_params(softs, l, rcb)) in pqisrc_build_scsi_cmd_raidbypass()
1815 if (!pqisrc_set_map_row_and_idx(softs, l, rcb)) in pqisrc_build_scsi_cmd_raidbypass()
1825 if (!pqisrc_set_write_mirrors(softs, device, l, rcb)) in pqisrc_build_scsi_cmd_raidbypass()
1843 pqisrc_set_r5or6_row_and_index(l, rcb); in pqisrc_build_scsi_cmd_raidbypass()
1853 rcb->ioaccel_handle = in pqisrc_build_scsi_cmd_raidbypass()
1863 rcb->encrypt_enable = false; in pqisrc_build_scsi_cmd_raidbypass()
1866 pqisrc_set_enc_info(&rcb->enc_info, l->raid_map, in pqisrc_build_scsi_cmd_raidbypass()
1868 rcb->encrypt_enable = true; in pqisrc_build_scsi_cmd_raidbypass()
1871 if (pqisrc_aio_req_too_big(softs, device, rcb, l, disk_blk_cnt)) in pqisrc_build_scsi_cmd_raidbypass()
1875 rcb->cdbp = &rcb->bypass_cdb[0]; in pqisrc_build_scsi_cmd_raidbypass()
1878 pqisrc_aio_build_cdb(l, disk_blk_cnt, rcb, rcb->cdbp); in pqisrc_build_scsi_cmd_raidbypass()
1880 pqisrc_aio_show_locator_info(softs, l, disk_blk_cnt, rcb); in pqisrc_build_scsi_cmd_raidbypass()
1893 rcb_t *rcb, rcb_t *rcb_to_manage, int tmf_type) in pqisrc_send_aio_tmf() argument
1906 tmf_req.req_id = rcb->tag; in pqisrc_send_aio_tmf()
1907 tmf_req.error_idx = rcb->tag; in pqisrc_send_aio_tmf()
1911 tmf_req.resp_qid = OS_GET_TMF_RESP_QID(softs, rcb); in pqisrc_send_aio_tmf()
1913 is_write = pqisrc_cdb_is_write(rcb->cdbp); in pqisrc_send_aio_tmf()
1915 uint64_t lun = rcb->cm_ccb->ccb_h.target_lun; in pqisrc_send_aio_tmf()
1916 if (lun && (rcb->dvp->is_multi_lun)) { in pqisrc_send_aio_tmf()
1940 rcb->path = AIO_PATH; in pqisrc_send_aio_tmf()
1941 rcb->req_pending = true; in pqisrc_send_aio_tmf()
1943 rcb->error_cmp_callback = pqisrc_process_aio_response_error; in pqisrc_send_aio_tmf()
1951 rval = pqisrc_wait_on_condition(softs, rcb, PQISRC_TMF_TIMEOUT); in pqisrc_send_aio_tmf()
1954 rcb->status = rval; in pqisrc_send_aio_tmf()
1957 if (rcb->status != PQI_STATUS_SUCCESS) { in pqisrc_send_aio_tmf()
1959 "stat:0x%x\n", tmf_type, rcb->status); in pqisrc_send_aio_tmf()
1970 rcb_t *rcb, rcb_t *rcb_to_manage, int tmf_type) in pqisrc_send_raid_tmf() argument
1982 tmf_req.req_id = rcb->tag; in pqisrc_send_raid_tmf()
1985 tmf_req.ml_device_lun_number = (uint8_t)rcb->cm_ccb->ccb_h.target_lun; in pqisrc_send_raid_tmf()
1988 tmf_req.resp_qid = OS_GET_TMF_RESP_QID(softs, rcb); in pqisrc_send_raid_tmf()
2010 rcb->path = RAID_PATH; in pqisrc_send_raid_tmf()
2011 rcb->req_pending = true; in pqisrc_send_raid_tmf()
2013 rcb->error_cmp_callback = pqisrc_process_raid_response_error; in pqisrc_send_raid_tmf()
2021 rval = pqisrc_wait_on_condition(softs, rcb, PQISRC_TMF_TIMEOUT); in pqisrc_send_raid_tmf()
2024 rcb->status = rval; in pqisrc_send_raid_tmf()
2027 if (rcb->status != PQI_STATUS_SUCCESS) { in pqisrc_send_raid_tmf()
2029 "stat:0x%x\n", tmf_type, rcb->status); in pqisrc_send_raid_tmf()
2038 dump_tmf_details(pqisrc_softstate_t *softs, rcb_t *rcb, char *msg) in dump_tmf_details() argument
2040 uint32_t qid = rcb->req_q ? rcb->req_q->q_id : -1; in dump_tmf_details()
2043 msg, rcb->req_pending, rcb->path, rcb->tag, in dump_tmf_details()
2044 rcb->tag, qid, (uint32_t)rcb->host_timeout_ms); in dump_tmf_details()
2049 rcb_t *rcb, rcb_t *rcb_to_manage, int tmf_type) in pqisrc_send_tmf() argument
2058 rcb->is_abort_cmd_from_host = true; in pqisrc_send_tmf()
2059 rcb->softs = softs; in pqisrc_send_tmf()
2069 dump_tmf_details(softs, rcb, "rcb"); in pqisrc_send_tmf()
2075 ret = pqisrc_send_aio_tmf(softs, devp, rcb, rcb_to_manage, tmf_type); in pqisrc_send_tmf()
2083 ret = pqisrc_send_raid_tmf(softs, devp, rcb, rcb_to_manage, tmf_type); in pqisrc_send_tmf()
2087 ret = pqisrc_send_aio_tmf(softs, devp, rcb, rcb_to_manage, tmf_type); in pqisrc_send_tmf()
2089 ret = pqisrc_send_raid_tmf(softs, devp, rcb, rcb_to_manage, tmf_type); in pqisrc_send_tmf()
2099 get_counter_index(rcb_t *rcb) in get_counter_index() argument
2101 if (IS_AIO_PATH(rcb->dvp)) in get_counter_index()
2104 switch (rcb->dvp->raid_level) { in get_counter_index()
2117 ASSERT(rcb->path == RAID_PATH); in get_counter_index()
2214 pqisrc_increment_io_counters(pqisrc_softstate_t *softs, rcb_t *rcb) in pqisrc_increment_io_counters() argument
2216 io_type_t io_type = get_io_type_from_cdb(rcb->cdbp); in pqisrc_increment_io_counters()
2217 counter_types_t type_index = get_counter_index(rcb); in pqisrc_increment_io_counters()
2221 ret_val = increment_this_counter(pcounter, rcb->path, io_type); in pqisrc_increment_io_counters()
2227 char *path = io_path_to_ascii(rcb->path); in pqisrc_increment_io_counters()