Lines Matching refs:fcport
27 struct qedf_rport *fcport; in qedf_cmd_timeout() local
35 fcport = io_req->fcport; in qedf_cmd_timeout()
36 if (io_req->fcport == NULL) { in qedf_cmd_timeout()
41 qedf = fcport->qedf; in qedf_cmd_timeout()
68 qedf_restart_rport(fcport); in qedf_cmd_timeout()
287 struct qedf_ioreq *qedf_alloc_cmd(struct qedf_rport *fcport, u8 cmd_type) in qedf_alloc_cmd() argument
289 struct qedf_ctx *qedf = fcport->qedf; in qedf_alloc_cmd()
298 free_sqes = atomic_read(&fcport->free_sqes); in qedf_alloc_cmd()
308 if ((atomic_read(&fcport->num_active_ios) >= in qedf_alloc_cmd()
312 atomic_read(&fcport->num_active_ios)); in qedf_alloc_cmd()
344 atomic_inc(&fcport->num_active_ios); in qedf_alloc_cmd()
345 atomic_dec(&fcport->free_sqes); in qedf_alloc_cmd()
350 io_req->fcport = fcport; in qedf_alloc_cmd()
383 struct qedf_ctx *qedf = io_req->fcport->qedf; in qedf_free_mp_resc()
414 struct qedf_rport *fcport = io_req->fcport; in qedf_release_cmd() local
421 atomic_dec(&fcport->num_active_ios); in qedf_release_cmd()
422 if (atomic_read(&fcport->num_active_ios) < 0) in qedf_release_cmd()
423 QEDF_WARN(&(fcport->qedf->dbg_ctx), "active_ios < 0.\n"); in qedf_release_cmd()
600 static void qedf_init_task(struct qedf_rport *fcport, struct fc_lport *lport, in qedf_init_task() argument
610 struct qedf_ctx *qedf = fcport->qedf; in qedf_init_task()
642 io_req->task_params->conn_cid = fcport->fw_cid; in qedf_init_task()
645 io_req->task_params->is_tape_device = fcport->dev_type; in qedf_init_task()
698 struct qedf_rport *fcport = io_req->fcport; in qedf_init_mp_task() local
699 struct qedf_ctx *qedf = io_req->fcport->qedf; in qedf_init_mp_task()
726 io_req->task_params->conn_cid = fcport->fw_cid; in qedf_init_mp_task()
730 io_req->task_params->is_tape_device = fcport->dev_type; in qedf_init_mp_task()
779 u16 qedf_get_sqe_idx(struct qedf_rport *fcport) in qedf_get_sqe_idx() argument
781 uint16_t total_sqe = (fcport->sq_mem_size)/(sizeof(struct fcoe_wqe)); in qedf_get_sqe_idx()
784 rval = fcport->sq_prod_idx; in qedf_get_sqe_idx()
787 fcport->sq_prod_idx++; in qedf_get_sqe_idx()
788 fcport->fw_sq_prod_idx++; in qedf_get_sqe_idx()
789 if (fcport->sq_prod_idx == total_sqe) in qedf_get_sqe_idx()
790 fcport->sq_prod_idx = 0; in qedf_get_sqe_idx()
795 void qedf_ring_doorbell(struct qedf_rport *fcport) in qedf_ring_doorbell() argument
806 dbell.sq_prod = fcport->fw_sq_prod_idx; in qedf_ring_doorbell()
807 writel(*(u32 *)&dbell, fcport->p_doorbell); in qedf_ring_doorbell()
813 static void qedf_trace_io(struct qedf_rport *fcport, struct qedf_ioreq *io_req, in qedf_trace_io() argument
816 struct qedf_ctx *qedf = fcport->qedf; in qedf_trace_io()
827 io_log->port_id = fcport->rdata->ids.port_id; in qedf_trace_io()
860 int qedf_post_io_req(struct qedf_rport *fcport, struct qedf_ioreq *io_req) in qedf_post_io_req() argument
902 if (!test_bit(QEDF_RPORT_SESSION_READY, &fcport->flags)) { in qedf_post_io_req()
908 sqe_idx = qedf_get_sqe_idx(fcport); in qedf_post_io_req()
909 sqe = &fcport->sq[sqe_idx]; in qedf_post_io_req()
921 qedf_init_task(fcport, lport, io_req, task_ctx, sqe); in qedf_post_io_req()
924 qedf_ring_doorbell(fcport); in qedf_post_io_req()
927 qedf_trace_io(fcport, io_req, QEDF_IO_TRACE_REQ); in qedf_post_io_req()
939 struct qedf_rport *fcport; in qedf_queuecommand() local
982 fcport = (struct qedf_rport *)&rp[1]; in qedf_queuecommand()
984 if (!test_bit(QEDF_RPORT_SESSION_READY, &fcport->flags)) { in qedf_queuecommand()
992 if (fcport->retry_delay_timestamp) { in qedf_queuecommand()
993 if (time_after(jiffies, fcport->retry_delay_timestamp)) { in qedf_queuecommand()
994 fcport->retry_delay_timestamp = 0; in qedf_queuecommand()
1002 io_req = qedf_alloc_cmd(fcport, QEDF_SCSI_CMD); in qedf_queuecommand()
1011 spin_lock_irqsave(&fcport->rport_lock, flags); in qedf_queuecommand()
1012 if (qedf_post_io_req(fcport, io_req)) { in qedf_queuecommand()
1015 atomic_inc(&fcport->free_sqes); in qedf_queuecommand()
1018 spin_unlock_irqrestore(&fcport->rport_lock, flags); in qedf_queuecommand()
1028 struct qedf_ctx *qedf = io_req->fcport->qedf; in qedf_parse_fcp_rsp()
1099 struct qedf_rport *fcport; in qedf_scsi_completion() local
1143 fcport = io_req->fcport; in qedf_scsi_completion()
1228 fcport->retry_delay_timestamp = in qedf_scsi_completion()
1250 qedf_trace_io(fcport, io_req, QEDF_IO_TRACE_RSP); in qedf_scsi_completion()
1303 qedf_trace_io(io_req->fcport, io_req, QEDF_IO_TRACE_RSP); in qedf_scsi_done()
1319 struct qedf_rport *fcport = io_req->fcport; in qedf_process_warning_compl() local
1326 QEDF_ERR(&(io_req->fcport->qedf->dbg_ctx), "Warning CQE, " in qedf_process_warning_compl()
1328 QEDF_ERR(&(io_req->fcport->qedf->dbg_ctx), in qedf_process_warning_compl()
1332 QEDF_ERR(&(io_req->fcport->qedf->dbg_ctx), "tx_buff_off=%08x, " in qedf_process_warning_compl()
1350 if (fcport->dev_type == QEDF_RPORT_TYPE_TAPE) { in qedf_process_warning_compl()
1389 QEDF_ERR(&(io_req->fcport->qedf->dbg_ctx), "Error detection CQE, " in qedf_process_error_detect()
1391 QEDF_ERR(&(io_req->fcport->qedf->dbg_ctx), in qedf_process_error_detect()
1395 QEDF_ERR(&(io_req->fcport->qedf->dbg_ctx), "tx_buff_off=%08x, " in qedf_process_error_detect()
1441 void qedf_flush_active_ios(struct qedf_rport *fcport, int lun) in qedf_flush_active_ios() argument
1448 if (!fcport) in qedf_flush_active_ios()
1452 if (!test_bit(QEDF_RPORT_SESSION_READY, &fcport->flags)) { in qedf_flush_active_ios()
1457 qedf = fcport->qedf; in qedf_flush_active_ios()
1467 if (io_req->fcport != fcport) in qedf_flush_active_ios()
1546 struct qedf_rport *fcport = io_req->fcport; in qedf_initiate_abts() local
1557 if (!test_bit(QEDF_RPORT_SESSION_READY, &fcport->flags)) { in qedf_initiate_abts()
1563 rdata = fcport->rdata; in qedf_initiate_abts()
1565 qedf = fcport->qedf; in qedf_initiate_abts()
1581 if (!atomic_read(&fcport->free_sqes)) { in qedf_initiate_abts()
1587 if (test_bit(QEDF_RPORT_UPLOADING_CONNECTION, &fcport->flags)) { in qedf_initiate_abts()
1622 spin_lock_irqsave(&fcport->rport_lock, flags); in qedf_initiate_abts()
1624 sqe_idx = qedf_get_sqe_idx(fcport); in qedf_initiate_abts()
1625 sqe = &fcport->sq[sqe_idx]; in qedf_initiate_abts()
1630 qedf_ring_doorbell(fcport); in qedf_initiate_abts()
1632 spin_unlock_irqrestore(&fcport->rport_lock, flags); in qedf_initiate_abts()
1701 struct qedf_ctx *qedf = io_req->fcport->qedf; in qedf_init_mp_req()
1803 struct qedf_rport *fcport; in qedf_initiate_cleanup() local
1813 fcport = io_req->fcport; in qedf_initiate_cleanup()
1814 if (!fcport) { in qedf_initiate_cleanup()
1820 if (!test_bit(QEDF_RPORT_SESSION_READY, &fcport->flags)) { in qedf_initiate_cleanup()
1826 qedf = fcport->qedf; in qedf_initiate_cleanup()
1841 if (!atomic_read(&fcport->free_sqes)) { in qedf_initiate_cleanup()
1864 spin_lock_irqsave(&fcport->rport_lock, flags); in qedf_initiate_cleanup()
1866 sqe_idx = qedf_get_sqe_idx(fcport); in qedf_initiate_cleanup()
1867 sqe = &fcport->sq[sqe_idx]; in qedf_initiate_cleanup()
1872 qedf_ring_doorbell(fcport); in qedf_initiate_cleanup()
1874 spin_unlock_irqrestore(&fcport->rport_lock, flags); in qedf_initiate_cleanup()
1915 static int qedf_execute_tmf(struct qedf_rport *fcport, struct scsi_cmnd *sc_cmd, in qedf_execute_tmf() argument
1920 struct qedf_ctx *qedf = fcport->qedf; in qedf_execute_tmf()
1934 if (!test_bit(QEDF_RPORT_SESSION_READY, &fcport->flags)) { in qedf_execute_tmf()
1941 "tm_flags = %d\n", fcport->rdata->ids.port_id, tm_flags); in qedf_execute_tmf()
1943 io_req = qedf_alloc_cmd(fcport, QEDF_TASK_MGMT_CMD); in qedf_execute_tmf()
1957 io_req->fcport = fcport; in qedf_execute_tmf()
1982 spin_lock_irqsave(&fcport->rport_lock, flags); in qedf_execute_tmf()
1984 sqe_idx = qedf_get_sqe_idx(fcport); in qedf_execute_tmf()
1985 sqe = &fcport->sq[sqe_idx]; in qedf_execute_tmf()
1988 qedf_init_task(fcport, lport, io_req, task, sqe); in qedf_execute_tmf()
1989 qedf_ring_doorbell(fcport); in qedf_execute_tmf()
1991 spin_unlock_irqrestore(&fcport->rport_lock, flags); in qedf_execute_tmf()
2008 qedf_flush_active_ios(fcport, (int)sc_cmd->device->lun); in qedf_execute_tmf()
2010 qedf_flush_active_ios(fcport, -1); in qedf_execute_tmf()
2029 struct qedf_rport *fcport = (struct qedf_rport *)&rp[1]; in qedf_initiate_tmf() local
2043 if (fcport == NULL) { in qedf_initiate_tmf()
2049 qedf = fcport->qedf; in qedf_initiate_tmf()
2064 rc = qedf_execute_tmf(fcport, sc_cmd, tm_flags); in qedf_initiate_tmf()