Lines Matching refs:qpair
110 struct qla_qpair *qpair = sp->qpair; in qla24xx_abort_iocb_timeout() local
125 spin_lock_irqsave(qpair->qp_lock_ptr, flags); in qla24xx_abort_iocb_timeout()
126 for (handle = 1; handle < qpair->req->num_outstanding_cmds; handle++) { in qla24xx_abort_iocb_timeout()
127 if (sp->cmd_sp && (qpair->req->outstanding_cmds[handle] == in qla24xx_abort_iocb_timeout()
129 qpair->req->outstanding_cmds[handle] = NULL; in qla24xx_abort_iocb_timeout()
131 qla_put_fw_resources(qpair, &sp->cmd_sp->iores); in qla24xx_abort_iocb_timeout()
135 if (qpair->req->outstanding_cmds[handle] == sp) { in qla24xx_abort_iocb_timeout()
136 qpair->req->outstanding_cmds[handle] = NULL; in qla24xx_abort_iocb_timeout()
138 qla_put_fw_resources(qpair, &sp->iores); in qla24xx_abort_iocb_timeout()
142 spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); in qla24xx_abort_iocb_timeout()
181 sp = qla2xxx_get_qpair_sp(cmd_sp->vha, cmd_sp->qpair, cmd_sp->fcport, in qla24xx_async_abort_cmd()
190 sp->qpair = cmd_sp->qpair; in qla24xx_async_abort_cmd()
201 abt_iocb->u.abt.req_que_no = cpu_to_le16(cmd_sp->qpair->req->id); in qla24xx_async_abort_cmd()
254 spin_lock_irqsave(sp->qpair->qp_lock_ptr, flags); in qla2x00_async_iocb_timeout()
255 for (h = 1; h < sp->qpair->req->num_outstanding_cmds; in qla2x00_async_iocb_timeout()
257 if (sp->qpair->req->outstanding_cmds[h] == in qla2x00_async_iocb_timeout()
259 sp->qpair->req->outstanding_cmds[h] = in qla2x00_async_iocb_timeout()
264 spin_unlock_irqrestore(sp->qpair->qp_lock_ptr, flags); in qla2x00_async_iocb_timeout()
278 spin_lock_irqsave(sp->qpair->qp_lock_ptr, flags); in qla2x00_async_iocb_timeout()
279 for (h = 1; h < sp->qpair->req->num_outstanding_cmds; in qla2x00_async_iocb_timeout()
281 if (sp->qpair->req->outstanding_cmds[h] == in qla2x00_async_iocb_timeout()
283 sp->qpair->req->outstanding_cmds[h] = in qla2x00_async_iocb_timeout()
288 spin_unlock_irqrestore(sp->qpair->qp_lock_ptr, flags); in qla2x00_async_iocb_timeout()
2028 spin_lock_irqsave(sp->qpair->qp_lock_ptr, flags); in qla2x00_tmf_iocb_timeout()
2029 for (h = 1; h < sp->qpair->req->num_outstanding_cmds; h++) { in qla2x00_tmf_iocb_timeout()
2030 if (sp->qpair->req->outstanding_cmds[h] == sp) { in qla2x00_tmf_iocb_timeout()
2031 sp->qpair->req->outstanding_cmds[h] = NULL; in qla2x00_tmf_iocb_timeout()
2032 qla_put_fw_resources(sp->qpair, &sp->iores); in qla2x00_tmf_iocb_timeout()
2036 spin_unlock_irqrestore(sp->qpair->qp_lock_ptr, flags); in qla2x00_tmf_iocb_timeout()
2051 sp->u.iocb_cmd.u.tmf.lun, sp->qpair->id); in qla_marker_sp_done()
2093 arg->modifier, arg->lun, arg->qpair->id); in qla26xx_marker()
2101 sp = qla2xxx_get_qpair_sp(vha, arg->qpair, fcport, GFP_KERNEL); in qla26xx_marker()
2122 arg->modifier, arg->lun, sp->qpair->id, rval); in qla26xx_marker()
2137 arg->modifier, arg->lun, sp->qpair->id, rval); in qla26xx_marker()
2182 arg->modifier, arg->lun, arg->qpair->id); in __qla2x00_async_tm_cmd()
2190 sp = qla2xxx_get_qpair_sp(vha, arg->qpair, fcport, GFP_KERNEL); in __qla2x00_async_tm_cmd()
2211 arg->flags, arg->lun, sp->qpair->id, rval); in __qla2x00_async_tm_cmd()
2342 a.qpair = vha->hw->base_qpair; in qla2x00_async_tm_cmd()
2356 struct qla_qpair *qpair = sp->qpair; in qla24xx_async_abort_command() local
2358 struct req_que *req = qpair->req; in qla24xx_async_abort_command()
2360 spin_lock_irqsave(qpair->qp_lock_ptr, flags); in qla24xx_async_abort_command()
2365 spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); in qla24xx_async_abort_command()
4209 static void __qla_adjust_iocb_limit(struct qla_qpair *qpair) in __qla_adjust_iocb_limit() argument
4213 struct qla_hw_data *ha = qpair->vha->hw; in __qla_adjust_iocb_limit()
4218 qpair->fwres.iocbs_total = ha->orig_fw_iocb_count; in __qla_adjust_iocb_limit()
4219 qpair->fwres.iocbs_limit = limit; in __qla_adjust_iocb_limit()
4220 qpair->fwres.iocbs_qp_limit = limit / num_qps; in __qla_adjust_iocb_limit()
4222 qpair->fwres.exch_total = ha->orig_fw_xcb_count; in __qla_adjust_iocb_limit()
4223 qpair->fwres.exch_limit = (ha->orig_fw_xcb_count * in __qla_adjust_iocb_limit()
9669 struct qla_qpair *qpair = NULL; in qla2xxx_create_qpair() local
9679 qpair = kzalloc(sizeof(struct qla_qpair), GFP_KERNEL); in qla2xxx_create_qpair()
9680 if (qpair == NULL) { in qla2xxx_create_qpair()
9686 qpair->hw = vha->hw; in qla2xxx_create_qpair()
9687 qpair->vha = vha; in qla2xxx_create_qpair()
9688 qpair->qp_lock_ptr = &qpair->qp_lock; in qla2xxx_create_qpair()
9689 spin_lock_init(&qpair->qp_lock); in qla2xxx_create_qpair()
9690 qpair->use_shadow_reg = IS_SHADOW_REG_CAPABLE(ha) ? 1 : 0; in qla2xxx_create_qpair()
9703 ha->queue_pair_map[qpair_id] = qpair; in qla2xxx_create_qpair()
9704 qpair->id = qpair_id; in qla2xxx_create_qpair()
9705 qpair->vp_idx = vp_idx; in qla2xxx_create_qpair()
9706 qpair->fw_started = ha->flags.fw_started; in qla2xxx_create_qpair()
9707 INIT_LIST_HEAD(&qpair->hints_list); in qla2xxx_create_qpair()
9708 INIT_LIST_HEAD(&qpair->dsd_list); in qla2xxx_create_qpair()
9709 qpair->chip_reset = ha->base_qpair->chip_reset; in qla2xxx_create_qpair()
9710 qpair->enable_class_2 = ha->base_qpair->enable_class_2; in qla2xxx_create_qpair()
9711 qpair->enable_explicit_conf = in qla2xxx_create_qpair()
9718 qpair->msix = msix; in qla2xxx_create_qpair()
9723 if (!qpair->msix) { in qla2xxx_create_qpair()
9729 qpair->msix->in_use = 1; in qla2xxx_create_qpair()
9730 list_add_tail(&qpair->qp_list_elem, &vha->qp_list); in qla2xxx_create_qpair()
9731 qpair->pdev = ha->pdev; in qla2xxx_create_qpair()
9733 qpair->reqq_start_iocbs = qla_83xx_start_iocbs; in qla2xxx_create_qpair()
9738 rsp_id = qla25xx_create_rsp_que(ha, 0, 0, 0, qpair, startqp); in qla2xxx_create_qpair()
9745 qpair->rsp = ha->rsp_q_map[rsp_id]; in qla2xxx_create_qpair()
9756 qpair->req = ha->req_q_map[req_id]; in qla2xxx_create_qpair()
9757 qpair->rsp->req = qpair->req; in qla2xxx_create_qpair()
9758 qpair->rsp->qpair = qpair; in qla2xxx_create_qpair()
9760 if (!qpair->cpu_mapped) in qla2xxx_create_qpair()
9761 qla_cpu_update(qpair, raw_smp_processor_id()); in qla2xxx_create_qpair()
9765 qpair->difdix_supported = 1; in qla2xxx_create_qpair()
9768 qpair->srb_mempool = mempool_create_slab_pool(SRB_MIN_REQ, srb_cachep); in qla2xxx_create_qpair()
9769 if (!qpair->srb_mempool) { in qla2xxx_create_qpair()
9772 qpair->id); in qla2xxx_create_qpair()
9776 if (qla_create_buf_pool(vha, qpair)) { in qla2xxx_create_qpair()
9779 qpair->id); in qla2xxx_create_qpair()
9784 qpair->online = 1; in qla2xxx_create_qpair()
9791 qpair->id); in qla2xxx_create_qpair()
9794 qpair->id); in qla2xxx_create_qpair()
9796 return qpair; in qla2xxx_create_qpair()
9799 mempool_destroy(qpair->srb_mempool); in qla2xxx_create_qpair()
9801 qla25xx_delete_req_que(vha, qpair->req); in qla2xxx_create_qpair()
9803 qla25xx_delete_rsp_que(vha, qpair->rsp); in qla2xxx_create_qpair()
9806 qpair->msix->in_use = 0; in qla2xxx_create_qpair()
9807 list_del(&qpair->qp_list_elem); in qla2xxx_create_qpair()
9816 kfree(qpair); in qla2xxx_create_qpair()
9820 int qla2xxx_delete_qpair(struct scsi_qla_host *vha, struct qla_qpair *qpair) in qla2xxx_delete_qpair() argument
9823 struct qla_hw_data *ha = qpair->hw; in qla2xxx_delete_qpair()
9825 qpair->delete_in_progress = 1; in qla2xxx_delete_qpair()
9827 qla_free_buf_pool(qpair); in qla2xxx_delete_qpair()
9829 ret = qla25xx_delete_req_que(vha, qpair->req); in qla2xxx_delete_qpair()
9833 ret = qla25xx_delete_rsp_que(vha, qpair->rsp); in qla2xxx_delete_qpair()
9837 if (!list_empty(&qpair->dsd_list)) { in qla2xxx_delete_qpair()
9842 &qpair->dsd_list, list) { in qla2xxx_delete_qpair()
9851 ha->queue_pair_map[qpair->id] = NULL; in qla2xxx_delete_qpair()
9852 clear_bit(qpair->id, ha->qpair_qid_map); in qla2xxx_delete_qpair()
9854 list_del(&qpair->qp_list_elem); in qla2xxx_delete_qpair()
9860 mempool_destroy(qpair->srb_mempool); in qla2xxx_delete_qpair()
9861 kfree(qpair); in qla2xxx_delete_qpair()