H A D | qla_target.c | 108 *cmd, struct atio_from_isp *atio, int ha_locked); 114 struct atio_from_isp *atio, uint16_t status, int qfull); 230 struct atio_from_isp *atio) qlt_24xx_atio_pkt_all_vps() 234 __func__, vha->vp_idx, atio->u.raw.entry_type, qlt_24xx_atio_pkt_all_vps() 235 be16_to_cpu(atio->u.isp24.fcp_hdr.ox_id)); qlt_24xx_atio_pkt_all_vps() 237 switch (atio->u.raw.entry_type) { qlt_24xx_atio_pkt_all_vps() 241 atio->u.isp24.fcp_hdr.d_id); qlt_24xx_atio_pkt_all_vps() 246 atio->u.isp24.fcp_hdr.d_id[0], qlt_24xx_atio_pkt_all_vps() 247 atio->u.isp24.fcp_hdr.d_id[1], qlt_24xx_atio_pkt_all_vps() 248 atio->u.isp24.fcp_hdr.d_id[2]); qlt_24xx_atio_pkt_all_vps() 251 qlt_24xx_atio_pkt(host, atio); qlt_24xx_atio_pkt_all_vps() 259 (struct imm_ntfy_from_isp *)atio; qlt_24xx_atio_pkt_all_vps() 274 qlt_24xx_atio_pkt(host, atio); qlt_24xx_atio_pkt_all_vps() 280 "qla_target(%d): Received unknown ATIO atio " qlt_24xx_atio_pkt_all_vps() 281 "type %x\n", vha->vp_idx, atio->u.raw.entry_type); qlt_24xx_atio_pkt_all_vps() 1180 "Sending task mgmt ABTS response (ha=%p, atio=%p, status=%x\n", qlt_24xx_send_abts_resp() 1304 if (tag == op->atio.u.isp24.exchange_addr) { abort_cmd_for_tag() 1312 if (tag == cmd->atio.u.isp24.exchange_addr) { abort_cmd_for_tag() 1341 op_key = sid_to_key(op->atio.u.isp24.fcp_hdr.s_id); abort_cmds_for_lun() 1343 (struct scsi_lun *)&op->atio.u.isp24.fcp_cmnd.lun); abort_cmds_for_lun() 1351 cmd_key = sid_to_key(cmd->atio.u.isp24.fcp_hdr.s_id); abort_cmds_for_lun() 1353 (struct scsi_lun *)&cmd->atio.u.isp24.fcp_cmnd.lun); abort_cmds_for_lun() 1501 struct atio_from_isp *atio = &mcmd->orig_iocb.atio; qlt_24xx_send_task_mgmt_ctio() local 1506 "Sending task mgmt CTIO7 (ha=%p, atio=%p, resp_code=%x\n", qlt_24xx_send_task_mgmt_ctio() 1507 ha, atio, resp_code); qlt_24xx_send_task_mgmt_ctio() 1527 ctio->initiator_id[0] = atio->u.isp24.fcp_hdr.s_id[2]; qlt_24xx_send_task_mgmt_ctio() 1528 ctio->initiator_id[1] = atio->u.isp24.fcp_hdr.s_id[1]; qlt_24xx_send_task_mgmt_ctio() 1529 ctio->initiator_id[2] = atio->u.isp24.fcp_hdr.s_id[0]; qlt_24xx_send_task_mgmt_ctio() 1530 ctio->exchange_addr = atio->u.isp24.exchange_addr; qlt_24xx_send_task_mgmt_ctio() 1531 ctio->u.status1.flags = (atio->u.isp24.attr << 9) | qlt_24xx_send_task_mgmt_ctio() 1534 temp = be16_to_cpu(atio->u.isp24.fcp_hdr.ox_id); qlt_24xx_send_task_mgmt_ctio() 1765 struct atio_from_isp *atio = &prm->cmd->atio; qlt_24xx_build_ctio_pkt() local 1790 pkt->initiator_id[0] = atio->u.isp24.fcp_hdr.s_id[2]; qlt_24xx_build_ctio_pkt() 1791 pkt->initiator_id[1] = atio->u.isp24.fcp_hdr.s_id[1]; qlt_24xx_build_ctio_pkt() 1792 pkt->initiator_id[2] = atio->u.isp24.fcp_hdr.s_id[0]; qlt_24xx_build_ctio_pkt() 1793 pkt->exchange_addr = atio->u.isp24.exchange_addr; qlt_24xx_build_ctio_pkt() 1794 pkt->u.status0.flags |= (atio->u.isp24.attr << 9); qlt_24xx_build_ctio_pkt() 1795 temp = be16_to_cpu(atio->u.isp24.fcp_hdr.ox_id); qlt_24xx_build_ctio_pkt() 2279 struct atio_from_isp *atio = &prm->cmd->atio; qlt_build_ctio_crc2_pkt() local 2373 pkt->initiator_id[0] = atio->u.isp24.fcp_hdr.s_id[2]; qlt_build_ctio_crc2_pkt() 2374 pkt->initiator_id[1] = atio->u.isp24.fcp_hdr.s_id[1]; qlt_build_ctio_crc2_pkt() 2375 pkt->initiator_id[2] = atio->u.isp24.fcp_hdr.s_id[0]; qlt_build_ctio_crc2_pkt() 2376 pkt->exchange_addr = atio->u.isp24.exchange_addr; qlt_build_ctio_crc2_pkt() 2379 t16 = be16_to_cpu(atio->u.isp24.fcp_hdr.ox_id); qlt_build_ctio_crc2_pkt() 2382 t16 = (atio->u.isp24.attr << 9); qlt_build_ctio_crc2_pkt() 2496 qlt_send_term_exchange(vha, cmd, &cmd->atio, 1); qlt_xmit_response() 2744 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2816 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2829 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2842 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2939 struct atio_from_isp *atio) __qlt_send_term_exchange() 2975 ctio24->initiator_id[0] = atio->u.isp24.fcp_hdr.s_id[2]; __qlt_send_term_exchange() 2976 ctio24->initiator_id[1] = atio->u.isp24.fcp_hdr.s_id[1]; __qlt_send_term_exchange() 2977 ctio24->initiator_id[2] = atio->u.isp24.fcp_hdr.s_id[0]; __qlt_send_term_exchange() 2978 ctio24->exchange_addr = atio->u.isp24.exchange_addr; __qlt_send_term_exchange() 2979 ctio24->u.status1.flags = (atio->u.isp24.attr << 9) | __qlt_send_term_exchange() 2982 temp = be16_to_cpu(atio->u.isp24.fcp_hdr.ox_id); __qlt_send_term_exchange() 2987 &atio->u.isp24.fcp_cmnd.add_cdb[ __qlt_send_term_exchange() 2988 atio->u.isp24.fcp_cmnd.add_cdb_len]); __qlt_send_term_exchange() 2999 struct qla_tgt_cmd *cmd, struct atio_from_isp *atio, int ha_locked) qlt_send_term_exchange() 3008 rc = __qlt_send_term_exchange(vha, cmd, atio); qlt_send_term_exchange() 3010 qlt_alloc_qfull_cmd(vha, atio, 0, 0); qlt_send_term_exchange() 3014 rc = __qlt_send_term_exchange(vha, cmd, atio); qlt_send_term_exchange() 3016 qlt_alloc_qfull_cmd(vha, atio, 0, 0); qlt_send_term_exchange() 3093 qlt_send_term_exchange(vha, cmd, &cmd->atio, 0); qlt_abort_cmd() 3104 be16_to_cpu(cmd->atio.u.isp24.fcp_hdr.ox_id)); qlt_free_cmd() 3225 qlt_send_term_exchange(vha, cmd, &cmd->atio, 1); qlt_term_ctio_exchange() 3557 struct atio_from_isp *atio = &cmd->atio; __qlt_do_work() local 3571 cmd->atio.u.isp24.exchange_addr); __qlt_do_work() 3575 cdb = &atio->u.isp24.fcp_cmnd.cdb[0]; __qlt_do_work() 3576 cmd->tag = atio->u.isp24.exchange_addr; __qlt_do_work() 3578 (struct scsi_lun *)&atio->u.isp24.fcp_cmnd.lun); __qlt_do_work() 3580 if (atio->u.isp24.fcp_cmnd.rddata && __qlt_do_work() 3581 atio->u.isp24.fcp_cmnd.wrdata) { __qlt_do_work() 3584 } else if (atio->u.isp24.fcp_cmnd.rddata) __qlt_do_work() 3586 else if (atio->u.isp24.fcp_cmnd.wrdata) __qlt_do_work() 3592 atio->u.isp24.fcp_cmnd.task_attr); __qlt_do_work() 3594 &atio->u.isp24.fcp_cmnd.add_cdb[ __qlt_do_work() 3595 atio->u.isp24.fcp_cmnd.add_cdb_len])); __qlt_do_work() 3617 qlt_send_term_exchange(vha, NULL, &cmd->atio, 1); __qlt_do_work() 3640 struct atio_from_isp *atio) qlt_get_tag() 3653 memcpy(&cmd->atio, atio, sizeof(*atio)); qlt_get_tag() 3683 uint8_t *s_id = op->atio.u.isp24.fcp_hdr.s_id; qlt_create_sess_from_atio() 3692 op->atio.u.isp24.exchange_addr); qlt_create_sess_from_atio() 3701 if (op->atio.u.raw.entry_count > 1) { qlt_create_sess_from_atio() 3703 "Dropping multy entry atio %p\n", &op->atio); qlt_create_sess_from_atio() 3715 * Now obtain a pre-allocated session tag using the original op->atio qlt_create_sess_from_atio() 3719 cmd = qlt_get_tag(vha, sess, &op->atio); qlt_create_sess_from_atio() 3722 qlt_send_busy(vha, &op->atio, SAM_STAT_BUSY); qlt_create_sess_from_atio() 3738 qlt_send_term_exchange(vha, NULL, &op->atio, 1); qlt_create_sess_from_atio() 3746 struct atio_from_isp *atio) qlt_handle_cmd_for_atio() 3759 sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, atio->u.isp24.fcp_hdr.s_id); qlt_handle_cmd_for_atio() 3766 memcpy(&op->atio, atio, sizeof(*atio)); qlt_handle_cmd_for_atio() 3792 cmd = qlt_get_tag(vha, sess, atio); qlt_handle_cmd_for_atio() 4126 uint32_t op_key = sid_to_key(op->atio.u.isp24.fcp_hdr.s_id); abort_cmds_for_s_id() 4133 uint32_t cmd_key = sid_to_key(cmd->atio.u.isp24.fcp_hdr.s_id); abort_cmds_for_s_id() 4571 qlt_send_term_exchange(vha, cmd, &cmd->atio, 1); qlt_handle_srr() 4747 &sctio->cmd->atio, 1); qlt_prepare_srr_imm() 4907 struct atio_from_isp *atio, uint16_t status) __qlt_send_busy() 4915 atio->u.isp24.fcp_hdr.s_id); __qlt_send_busy() 4917 qlt_send_term_exchange(vha, NULL, atio, 1); __qlt_send_busy() 4938 ctio24->initiator_id[0] = atio->u.isp24.fcp_hdr.s_id[2]; __qlt_send_busy() 4939 ctio24->initiator_id[1] = atio->u.isp24.fcp_hdr.s_id[1]; __qlt_send_busy() 4940 ctio24->initiator_id[2] = atio->u.isp24.fcp_hdr.s_id[0]; __qlt_send_busy() 4941 ctio24->exchange_addr = atio->u.isp24.exchange_addr; __qlt_send_busy() 4942 ctio24->u.status1.flags = (atio->u.isp24.attr << 9) | __qlt_send_busy() 4950 ctio24->u.status1.ox_id = swab16(atio->u.isp24.fcp_hdr.ox_id); __qlt_send_busy() 4965 struct atio_from_isp *atio, uint16_t status, int qfull) qlt_alloc_qfull_cmd() 4997 (vha, atio->u.isp24.fcp_hdr.s_id); qlt_alloc_qfull_cmd() 5027 memcpy(&cmd->atio, atio, sizeof(*atio)); qlt_alloc_qfull_cmd() 5074 rc = __qlt_send_busy(vha, &cmd->atio, cmd->state); qlt_free_qfull_cmds() 5076 rc = __qlt_send_term_exchange(vha, NULL, &cmd->atio); qlt_free_qfull_cmds() 5084 be16_to_cpu(cmd->atio.u.isp24.fcp_hdr.ox_id)); qlt_free_qfull_cmds() 5088 be16_to_cpu(cmd->atio.u.isp24.fcp_hdr.ox_id)); qlt_free_qfull_cmds() 5116 struct atio_from_isp *atio, uint16_t status) qlt_send_busy() 5120 rc = __qlt_send_busy(vha, atio, status); qlt_send_busy() 5122 qlt_alloc_qfull_cmd(vha, atio, status, 1); qlt_send_busy() 5127 struct atio_from_isp *atio) qlt_chk_qfull_thresh_hold() 5136 qlt_send_busy(vha, atio, status); qlt_chk_qfull_thresh_hold() 5143 struct atio_from_isp *atio) qlt_24xx_atio_pkt() 5161 switch (atio->u.raw.entry_type) { qlt_24xx_atio_pkt() 5163 if (unlikely(atio->u.isp24.exchange_addr == qlt_24xx_atio_pkt() 5169 qlt_send_busy(vha, atio, SAM_STAT_TASK_SET_FULL); qlt_24xx_atio_pkt() 5175 if (likely(atio->u.isp24.fcp_cmnd.task_mgmt_flags == 0)) { qlt_24xx_atio_pkt() 5176 rc = qlt_chk_qfull_thresh_hold(vha, atio); qlt_24xx_atio_pkt() 5181 rc = qlt_handle_cmd_for_atio(vha, atio); qlt_24xx_atio_pkt() 5183 rc = qlt_handle_task_mgmt(vha, atio); qlt_24xx_atio_pkt() 5188 qlt_send_busy(vha, atio, SAM_STAT_BUSY); qlt_24xx_atio_pkt() 5190 qlt_send_term_exchange(vha, NULL, atio, 1); qlt_24xx_atio_pkt() 5203 qlt_send_busy(vha, atio, SAM_STAT_BUSY); qlt_24xx_atio_pkt() 5211 if (unlikely(atio->u.isp2x.entry_status != 0)) { qlt_24xx_atio_pkt() 5215 atio->u.raw.entry_type, qlt_24xx_atio_pkt() 5216 atio->u.isp2x.entry_status); qlt_24xx_atio_pkt() 5220 qlt_handle_imm_notify(vha, (struct imm_ntfy_from_isp *)atio); qlt_24xx_atio_pkt() 5226 "qla_target(%d): Received unknown ATIO atio " qlt_24xx_atio_pkt() 5227 "type %x\n", vha->vp_idx, atio->u.raw.entry_type); qlt_24xx_atio_pkt() 5268 struct atio_from_isp *atio = (struct atio_from_isp *)pkt; qlt_response_pkt() local 5270 if (atio->u.isp2x.status != qlt_response_pkt() 5275 le16_to_cpu(atio->u.isp2x.status)); qlt_response_pkt() 5279 rc = qlt_chk_qfull_thresh_hold(vha, atio); qlt_response_pkt() 5285 rc = qlt_handle_cmd_for_atio(vha, atio); qlt_response_pkt() 5289 qlt_send_busy(vha, atio, 0); qlt_response_pkt() 5291 qlt_send_term_exchange(vha, NULL, atio, 1); qlt_response_pkt() 5300 atio, 1); qlt_response_pkt() 5306 qlt_send_busy(vha, atio, 0); qlt_response_pkt() 6196 "Registering ICB vector 0x%x for atio que.\n", qlt_24xx_config_rings() 229 qlt_24xx_atio_pkt_all_vps(struct scsi_qla_host *vha, struct atio_from_isp *atio) qlt_24xx_atio_pkt_all_vps() argument 2937 __qlt_send_term_exchange(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd, struct atio_from_isp *atio) __qlt_send_term_exchange() argument 2998 qlt_send_term_exchange(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd, struct atio_from_isp *atio, int ha_locked) qlt_send_term_exchange() argument 3638 qlt_get_tag(scsi_qla_host_t *vha, struct qla_tgt_sess *sess, struct atio_from_isp *atio) qlt_get_tag() argument 3745 qlt_handle_cmd_for_atio(struct scsi_qla_host *vha, struct atio_from_isp *atio) qlt_handle_cmd_for_atio() argument 4906 __qlt_send_busy(struct scsi_qla_host *vha, struct atio_from_isp *atio, uint16_t status) __qlt_send_busy() argument 4964 qlt_alloc_qfull_cmd(struct scsi_qla_host *vha, struct atio_from_isp *atio, uint16_t status, int qfull) qlt_alloc_qfull_cmd() argument 5115 qlt_send_busy(struct scsi_qla_host *vha, struct atio_from_isp *atio, uint16_t status) qlt_send_busy() argument 5126 qlt_chk_qfull_thresh_hold(struct scsi_qla_host *vha, struct atio_from_isp *atio) qlt_chk_qfull_thresh_hold() argument 5142 qlt_24xx_atio_pkt(struct scsi_qla_host *vha, struct atio_from_isp *atio) qlt_24xx_atio_pkt() argument
|