Lines Matching refs:io_req

112 				   struct fnic_io_req *io_req,  in fnic_release_ioreq_buf()  argument
115 if (io_req->sgl_list_pa) in fnic_release_ioreq_buf()
116 dma_unmap_single(&fnic->pdev->dev, io_req->sgl_list_pa, in fnic_release_ioreq_buf()
117 sizeof(io_req->sgl_list[0]) * io_req->sgl_cnt, in fnic_release_ioreq_buf()
121 if (io_req->sgl_cnt) in fnic_release_ioreq_buf()
122 mempool_free(io_req->sgl_list_alloc, in fnic_release_ioreq_buf()
123 fnic->io_sgl_pool[io_req->sgl_type]); in fnic_release_ioreq_buf()
124 if (io_req->sense_buf_pa) in fnic_release_ioreq_buf()
125 dma_unmap_single(&fnic->pdev->dev, io_req->sense_buf_pa, in fnic_release_ioreq_buf()
135 struct fnic_io_req *io_req = fnic_priv(sc)->io_req; in fnic_count_portid_ioreqs_iter() local
137 if (!io_req || (*portid && (io_req->port_id != *portid))) in fnic_count_portid_ioreqs_iter()
168 if (sc->device != scsi_device || !fnic_priv(sc)->io_req) in fnic_count_lun_ioreqs_iter()
357 struct fnic_io_req *io_req, in fnic_queue_wq_copy_desc() argument
379 desc = io_req->sgl_list; in fnic_queue_wq_copy_desc()
387 io_req->sgl_list_pa = dma_map_single(&fnic->pdev->dev, in fnic_queue_wq_copy_desc()
388 io_req->sgl_list, in fnic_queue_wq_copy_desc()
389 sizeof(io_req->sgl_list[0]) * sg_count, in fnic_queue_wq_copy_desc()
391 if (dma_mapping_error(&fnic->pdev->dev, io_req->sgl_list_pa)) { in fnic_queue_wq_copy_desc()
397 io_req->sense_buf_pa = dma_map_single(&fnic->pdev->dev, in fnic_queue_wq_copy_desc()
401 if (dma_mapping_error(&fnic->pdev->dev, io_req->sense_buf_pa)) { in fnic_queue_wq_copy_desc()
402 dma_unmap_single(&fnic->pdev->dev, io_req->sgl_list_pa, in fnic_queue_wq_copy_desc()
403 sizeof(io_req->sgl_list[0]) * sg_count, in fnic_queue_wq_copy_desc()
434 0, exch_flags, io_req->sgl_cnt, in fnic_queue_wq_copy_desc()
436 io_req->sgl_list_pa, in fnic_queue_wq_copy_desc()
437 io_req->sense_buf_pa, in fnic_queue_wq_copy_desc()
444 fc_lun.scsi_lun, io_req->port_id, in fnic_queue_wq_copy_desc()
463 struct fnic_io_req *io_req = NULL; in fnic_queuecommand() local
584 io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC); in fnic_queuecommand()
585 if (!io_req) { in fnic_queuecommand()
590 memset(io_req, 0, sizeof(*io_req)); in fnic_queuecommand()
597 mempool_free(io_req, fnic->io_req_pool); in fnic_queuecommand()
601 io_req->tport = tport; in fnic_queuecommand()
603 io_req->sgl_cnt = sg_count; in fnic_queuecommand()
604 io_req->sgl_type = FNIC_SGL_CACHE_DFLT; in fnic_queuecommand()
606 io_req->sgl_type = FNIC_SGL_CACHE_MAX; in fnic_queuecommand()
609 io_req->sgl_list = in fnic_queuecommand()
610 mempool_alloc(fnic->io_sgl_pool[io_req->sgl_type], in fnic_queuecommand()
612 if (!io_req->sgl_list) { in fnic_queuecommand()
616 mempool_free(io_req, fnic->io_req_pool); in fnic_queuecommand()
621 io_req->sgl_list_alloc = io_req->sgl_list; in fnic_queuecommand()
622 ptr = (unsigned long) io_req->sgl_list; in fnic_queuecommand()
624 io_req->sgl_list = (struct host_sg_desc *) in fnic_queuecommand()
639 io_req->port_id = rport->port_id; in fnic_queuecommand()
640 io_req->start_time = jiffies; in fnic_queuecommand()
642 fnic_priv(sc)->io_req = io_req; in fnic_queuecommand()
644 io_req->sc = sc; in fnic_queuecommand()
653 fnic->sw_copy_wq[hwq].io_req_table[blk_mq_unique_tag_to_tag(mqtag)] = io_req; in fnic_queuecommand()
654 io_req->tag = mqtag; in fnic_queuecommand()
659 ret = fnic_queue_wq_copy_desc(fnic, wq, io_req, sc, sg_count, mqtag, hwq); in fnic_queuecommand()
667 io_req = fnic_priv(sc)->io_req; in fnic_queuecommand()
668 fnic_priv(sc)->io_req = NULL; in fnic_queuecommand()
669 if (io_req) in fnic_queuecommand()
673 if (io_req) { in fnic_queuecommand()
674 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_queuecommand()
675 mempool_free(io_req, fnic->io_req_pool); in fnic_queuecommand()
698 mqtag, sc, io_req, sg_count, cmd_trace, in fnic_queuecommand()
917 struct fnic_io_req *io_req; in fnic_fcpio_icmnd_cmpl_handler() local
977 io_req = fnic_priv(sc)->io_req; in fnic_fcpio_icmnd_cmpl_handler()
978 if (fnic->sw_copy_wq[hwq].io_req_table[tag] != io_req) { in fnic_fcpio_icmnd_cmpl_handler()
985 WARN_ON_ONCE(!io_req); in fnic_fcpio_icmnd_cmpl_handler()
986 if (!io_req) { in fnic_fcpio_icmnd_cmpl_handler()
996 start_time = io_req->start_time; in fnic_fcpio_icmnd_cmpl_handler()
999 io_req->io_completed = 1; in fnic_fcpio_icmnd_cmpl_handler()
1103 fnic_priv(sc)->io_req = NULL; in fnic_fcpio_icmnd_cmpl_handler()
1104 io_req->sc = NULL; in fnic_fcpio_icmnd_cmpl_handler()
1116 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_fcpio_icmnd_cmpl_handler()
1143 mempool_free(io_req, fnic->io_req_pool); in fnic_fcpio_icmnd_cmpl_handler()
1186 struct fnic_io_req *io_req; in fnic_fcpio_itmf_cmpl_handler() local
1237 io_req = fnic->sw_copy_wq[hwq].io_req_table[tag]; in fnic_fcpio_itmf_cmpl_handler()
1238 if (io_req) in fnic_fcpio_itmf_cmpl_handler()
1239 sc = io_req->sc; in fnic_fcpio_itmf_cmpl_handler()
1254 io_req = fnic_priv(sc)->io_req; in fnic_fcpio_itmf_cmpl_handler()
1255 WARN_ON_ONCE(!io_req); in fnic_fcpio_itmf_cmpl_handler()
1256 if (!io_req) { in fnic_fcpio_itmf_cmpl_handler()
1266 start_time = io_req->start_time; in fnic_fcpio_itmf_cmpl_handler()
1278 if (io_req->abts_done) in fnic_fcpio_itmf_cmpl_handler()
1279 complete(io_req->abts_done); in fnic_fcpio_itmf_cmpl_handler()
1343 if (io_req->abts_done) { in fnic_fcpio_itmf_cmpl_handler()
1344 complete(io_req->abts_done); in fnic_fcpio_itmf_cmpl_handler()
1354 fnic_priv(sc)->io_req = NULL; in fnic_fcpio_itmf_cmpl_handler()
1359 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_fcpio_itmf_cmpl_handler()
1360 mempool_free(io_req, fnic->io_req_pool); in fnic_fcpio_itmf_cmpl_handler()
1419 if (io_req->dr_done) in fnic_fcpio_itmf_cmpl_handler()
1420 complete(io_req->dr_done); in fnic_fcpio_itmf_cmpl_handler()
1521 struct fnic_io_req *io_req; in fnic_cleanup_io_iter() local
1537 io_req = fnic_priv(sc)->io_req; in fnic_cleanup_io_iter()
1538 if (!io_req) { in fnic_cleanup_io_iter()
1553 if (io_req && io_req->dr_done) in fnic_cleanup_io_iter()
1554 complete(io_req->dr_done); in fnic_cleanup_io_iter()
1555 else if (io_req && io_req->abts_done) in fnic_cleanup_io_iter()
1556 complete(io_req->abts_done); in fnic_cleanup_io_iter()
1565 fnic_priv(sc)->io_req = NULL; in fnic_cleanup_io_iter()
1566 io_req->sc = NULL; in fnic_cleanup_io_iter()
1567 start_time = io_req->start_time; in fnic_cleanup_io_iter()
1574 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_cleanup_io_iter()
1575 mempool_free(io_req, fnic->io_req_pool); in fnic_cleanup_io_iter()
1606 struct fnic_io_req *io_req = NULL; in fnic_cleanup_io() local
1620 io_req = fnic->sw_copy_wq[0].io_req_table[fnic->fnic_max_tag_id]; in fnic_cleanup_io()
1621 if (io_req) { in fnic_cleanup_io()
1622 sc = io_req->sc; in fnic_cleanup_io()
1627 if (io_req && io_req->dr_done) in fnic_cleanup_io()
1628 complete(io_req->dr_done); in fnic_cleanup_io()
1649 struct fnic_io_req *io_req; in fnic_wq_copy_cleanup_handler() local
1670 io_req = fnic_priv(sc)->io_req; in fnic_wq_copy_cleanup_handler()
1674 if (!io_req) { in fnic_wq_copy_cleanup_handler()
1679 fnic_priv(sc)->io_req = NULL; in fnic_wq_copy_cleanup_handler()
1680 io_req->sc = NULL; in fnic_wq_copy_cleanup_handler()
1685 start_time = io_req->start_time; in fnic_wq_copy_cleanup_handler()
1686 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_wq_copy_cleanup_handler()
1687 mempool_free(io_req, fnic->io_req_pool); in fnic_wq_copy_cleanup_handler()
1707 struct fnic_io_req *io_req, in fnic_queue_abort_io_req() argument
1713 struct fnic_tport_s *tport = io_req->tport; in fnic_queue_abort_io_req()
1741 0, task_req, tag, fc_lun, io_req->port_id, in fnic_queue_abort_io_req()
1768 struct fnic_io_req *io_req; in fnic_rport_abort_io_iter() local
1786 io_req = fnic_priv(sc)->io_req; in fnic_rport_abort_io_iter()
1787 if (!io_req || io_req->port_id != iter_data->port_id) { in fnic_rport_abort_io_iter()
1810 if (io_req->abts_done) { in fnic_rport_abort_io_iter()
1836 WARN_ON_ONCE(io_req->abts_done); in fnic_rport_abort_io_iter()
1847 fc_lun.scsi_lun, io_req, hwq)) { in fnic_rport_abort_io_iter()
2008 struct fnic_io_req *io_req = NULL; in fnic_abort_cmd() local
2102 io_req = fnic_priv(sc)->io_req; in fnic_abort_cmd()
2103 if (!io_req) { in fnic_abort_cmd()
2109 io_req->abts_done = &tm_done; in fnic_abort_cmd()
2116 abt_issued_time = jiffies_to_msecs(jiffies) - jiffies_to_msecs(io_req->start_time); in fnic_abort_cmd()
2163 io_req, hwq)) { in fnic_abort_cmd()
2167 io_req = fnic_priv(sc)->io_req; in fnic_abort_cmd()
2168 if (io_req) in fnic_abort_cmd()
2169 io_req->abts_done = NULL; in fnic_abort_cmd()
2196 io_req = fnic_priv(sc)->io_req; in fnic_abort_cmd()
2197 if (!io_req) { in fnic_abort_cmd()
2204 io_req->abts_done = NULL; in fnic_abort_cmd()
2232 start_time = io_req->start_time; in fnic_abort_cmd()
2240 fnic_priv(sc)->io_req = NULL; in fnic_abort_cmd()
2241 io_req->sc = NULL; in fnic_abort_cmd()
2251 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_abort_cmd()
2252 mempool_free(io_req, fnic->io_req_pool); in fnic_abort_cmd()
2280 struct fnic_io_req *io_req) in fnic_queue_dr_io_req() argument
2289 struct fnic_tport_s *tport = io_req->tport; in fnic_queue_dr_io_req()
2291 tag = io_req->tag; in fnic_queue_dr_io_req()
2325 fc_lun.scsi_lun, io_req->port_id, in fnic_queue_dr_io_req()
2357 struct fnic_io_req *io_req; in fnic_pending_aborts_iter() local
2370 io_req = fnic_priv(sc)->io_req; in fnic_pending_aborts_iter()
2371 if (!io_req) { in fnic_pending_aborts_iter()
2396 if (io_req->abts_done) in fnic_pending_aborts_iter()
2410 BUG_ON(io_req->abts_done); in fnic_pending_aborts_iter()
2418 io_req->abts_done = &tm_done; in fnic_pending_aborts_iter()
2426 fc_lun.scsi_lun, io_req, hwq)) { in fnic_pending_aborts_iter()
2428 io_req = fnic_priv(sc)->io_req; in fnic_pending_aborts_iter()
2429 if (io_req) in fnic_pending_aborts_iter()
2430 io_req->abts_done = NULL; in fnic_pending_aborts_iter()
2452 io_req = fnic_priv(sc)->io_req; in fnic_pending_aborts_iter()
2453 if (!io_req) { in fnic_pending_aborts_iter()
2459 io_req->abts_done = NULL; in fnic_pending_aborts_iter()
2472 fnic_priv(sc)->io_req = NULL; in fnic_pending_aborts_iter()
2479 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_pending_aborts_iter()
2480 mempool_free(io_req, fnic->io_req_pool); in fnic_pending_aborts_iter()
2541 struct fnic_io_req *io_req = NULL; in fnic_device_reset() local
2634 io_req = fnic_priv(sc)->io_req; in fnic_device_reset()
2640 if (!io_req) { in fnic_device_reset()
2641 io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC); in fnic_device_reset()
2642 if (!io_req) { in fnic_device_reset()
2646 memset(io_req, 0, sizeof(*io_req)); in fnic_device_reset()
2647 io_req->port_id = rport->port_id; in fnic_device_reset()
2648 io_req->tag = mqtag; in fnic_device_reset()
2649 fnic_priv(sc)->io_req = io_req; in fnic_device_reset()
2650 io_req->tport = tport; in fnic_device_reset()
2651 io_req->sc = sc; in fnic_device_reset()
2658 io_req; in fnic_device_reset()
2660 io_req->dr_done = &tm_done; in fnic_device_reset()
2671 if (fnic_queue_dr_io_req(fnic, sc, io_req)) { in fnic_device_reset()
2673 io_req = fnic_priv(sc)->io_req; in fnic_device_reset()
2674 if (io_req) in fnic_device_reset()
2675 io_req->dr_done = NULL; in fnic_device_reset()
2713 io_req = fnic_priv(sc)->io_req; in fnic_device_reset()
2714 if (!io_req) { in fnic_device_reset()
2724 io_req->dr_done = NULL; in fnic_device_reset()
2727 io_req->dr_done = NULL; in fnic_device_reset()
2752 io_req = fnic_priv(sc)->io_req; in fnic_device_reset()
2765 io_req = fnic_priv(sc)->io_req; in fnic_device_reset()
2773 io_req = fnic_priv(sc)->io_req; in fnic_device_reset()
2774 if (io_req) in fnic_device_reset()
2779 if (io_req) { in fnic_device_reset()
2780 fnic_priv(sc)->io_req = NULL; in fnic_device_reset()
2781 io_req->sc = NULL; in fnic_device_reset()
2782 fnic->sw_copy_wq[hwq].io_req_table[blk_mq_unique_tag_to_tag(io_req->tag)] = NULL; in fnic_device_reset()
2787 if (io_req) { in fnic_device_reset()
2788 start_time = io_req->start_time; in fnic_device_reset()
2789 fnic_release_ioreq_buf(fnic, io_req, sc); in fnic_device_reset()
2790 mempool_free(io_req, fnic->io_req_pool); in fnic_device_reset()
2953 struct fnic_io_req *io_req; in fnic_abts_pending_iter() local
2972 io_req = fnic_priv(sc)->io_req; in fnic_abts_pending_iter()
2973 if (!io_req) { in fnic_abts_pending_iter()