Lines Matching refs:io_req

114  * Unmap the data buffer and sense buffer for an io_req,
118 struct fnic_io_req *io_req,
121 if (io_req->sgl_list_pa)
122 pci_unmap_single(fnic->pdev, io_req->sgl_list_pa,
123 sizeof(io_req->sgl_list[0]) * io_req->sgl_cnt,
127 if (io_req->sgl_cnt)
128 mempool_free(io_req->sgl_list_alloc,
129 fnic->io_sgl_pool[io_req->sgl_type]);
130 if (io_req->sense_buf_pa)
131 pci_unmap_single(fnic->pdev, io_req->sense_buf_pa,
261 struct fnic_io_req *io_req,
279 desc = io_req->sgl_list;
287 io_req->sgl_list_pa = pci_map_single
289 io_req->sgl_list,
290 sizeof(io_req->sgl_list[0]) * sg_count,
294 io_req->sense_buf_pa = pci_map_single(fnic->pdev,
330 0, exch_flags, io_req->sgl_cnt,
332 io_req->sgl_list_pa,
333 io_req->sense_buf_pa,
339 fc_lun.scsi_lun, io_req->port_id,
356 struct fnic_io_req *io_req;
383 /* Get a new io_req for this SCSI IO */
386 io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC);
387 if (!io_req) {
391 memset(io_req, 0, sizeof(*io_req));
396 mempool_free(io_req, fnic->io_req_pool);
401 io_req->sgl_cnt = sg_count;
402 io_req->sgl_type = FNIC_SGL_CACHE_DFLT;
404 io_req->sgl_type = FNIC_SGL_CACHE_MAX;
407 io_req->sgl_list =
408 mempool_alloc(fnic->io_sgl_pool[io_req->sgl_type],
410 if (!io_req->sgl_list) {
413 mempool_free(io_req, fnic->io_req_pool);
418 io_req->sgl_list_alloc = io_req->sgl_list;
419 ptr = (unsigned long) io_req->sgl_list;
421 io_req->sgl_list = (struct host_sg_desc *)
428 /* initialize rest of io_req */
429 io_req->port_id = rport->port_id;
431 CMD_SP(sc) = (char *)io_req;
436 ret = fnic_queue_wq_copy_desc(fnic, wq, io_req, sc, sg_count);
445 io_req = (struct fnic_io_req *)CMD_SP(sc);
449 if (io_req) {
450 fnic_release_ioreq_buf(fnic, io_req, sc);
451 mempool_free(io_req, fnic->io_req_pool);
650 struct fnic_io_req *io_req;
655 /* Decode the cmpl description to get the io_req id */
669 io_req = (struct fnic_io_req *)CMD_SP(sc);
670 WARN_ON_ONCE(!io_req);
671 if (!io_req) {
677 io_req->io_completed = 1;
771 fnic_release_ioreq_buf(fnic, io_req, sc);
773 mempool_free(io_req, fnic->io_req_pool);
801 struct fnic_io_req *io_req;
818 io_req = (struct fnic_io_req *)CMD_SP(sc);
819 WARN_ON_ONCE(!io_req);
820 if (!io_req) {
845 if (io_req->abts_done) {
846 complete(io_req->abts_done);
856 fnic_release_ioreq_buf(fnic, io_req, sc);
857 mempool_free(io_req, fnic->io_req_pool);
870 if (io_req->dr_done)
871 complete(io_req->dr_done);
949 struct fnic_io_req *io_req;
964 io_req = (struct fnic_io_req *)CMD_SP(sc);
965 if (!io_req) {
975 * If there is a scsi_cmnd associated with this io_req, then
978 fnic_release_ioreq_buf(fnic, io_req, sc);
979 mempool_free(io_req, fnic->io_req_pool);
997 struct fnic_io_req *io_req;
1017 io_req = (struct fnic_io_req *)CMD_SP(sc);
1021 if (!io_req) {
1030 fnic_release_ioreq_buf(fnic, io_req, sc);
1031 mempool_free(io_req, fnic->io_req_pool);
1044 struct fnic_io_req *io_req)
1059 0, task_req, tag, fc_lun, io_req->port_id,
1069 struct fnic_io_req *io_req;
1092 io_req = (struct fnic_io_req *)CMD_SP(sc);
1094 if (!io_req || io_req->port_id != port_id) {
1111 BUG_ON(io_req->abts_done);
1123 fc_lun.scsi_lun, io_req)) {
1144 struct fnic_io_req *io_req;
1176 io_req = (struct fnic_io_req *)CMD_SP(sc);
1178 if (!io_req || rport != cmd_rport) {
1195 BUG_ON(io_req->abts_done);
1208 fc_lun.scsi_lun, io_req)) {
1228 * A SCSI IO is represented by a io_req in the driver.
1235 struct fnic_io_req *io_req;
1275 io_req = (struct fnic_io_req *)CMD_SP(sc);
1276 if (!io_req) {
1281 io_req->abts_done = &tm_done;
1312 fc_lun.scsi_lun, io_req)) {
1314 io_req = (struct fnic_io_req *)CMD_SP(sc);
1315 if (io_req)
1316 io_req->abts_done = NULL;
1336 io_req = (struct fnic_io_req *)CMD_SP(sc);
1337 if (!io_req) {
1342 io_req->abts_done = NULL;
1353 * free the io_req irrespective of failure or success
1362 fnic_release_ioreq_buf(fnic, io_req, sc);
1363 mempool_free(io_req, fnic->io_req_pool);
1375 struct fnic_io_req *io_req)
1397 fc_lun.scsi_lun, io_req->port_id,
1416 struct fnic_io_req *io_req;
1437 io_req = (struct fnic_io_req *)CMD_SP(sc);
1439 if (!io_req || sc->device != lun_dev) {
1455 io_req->abts_done = &tm_done;
1463 fc_lun.scsi_lun, io_req)) {
1465 io_req = (struct fnic_io_req *)CMD_SP(sc);
1466 if (io_req)
1467 io_req->abts_done = NULL;
1479 io_req = (struct fnic_io_req *)CMD_SP(sc);
1480 if (!io_req) {
1486 io_req->abts_done = NULL;
1497 fnic_release_ioreq_buf(fnic, io_req, sc);
1498 mempool_free(io_req, fnic->io_req_pool);
1514 struct fnic_io_req *io_req;
1544 io_req = (struct fnic_io_req *)CMD_SP(sc);
1547 * If there is a io_req attached to this command, then use it,
1550 if (!io_req) {
1551 io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC);
1552 if (!io_req) {
1556 memset(io_req, 0, sizeof(*io_req));
1557 io_req->port_id = rport->port_id;
1558 CMD_SP(sc) = (char *)io_req;
1560 io_req->dr_done = &tm_done;
1572 if (fnic_queue_dr_io_req(fnic, sc, io_req)) {
1574 io_req = (struct fnic_io_req *)CMD_SP(sc);
1575 if (io_req)
1576 io_req->dr_done = NULL;
1581 * Wait on the local completion for LUN reset. The io_req may be
1588 io_req = (struct fnic_io_req *)CMD_SP(sc);
1589 if (!io_req) {
1593 io_req->dr_done = NULL;
1599 * If lun reset not completed, bail out with failed. io_req
1608 /* Completed, but not successful, clean up the io_req, return fail */
1614 io_req = (struct fnic_io_req *)CMD_SP(sc);
1627 io_req = (struct fnic_io_req *)CMD_SP(sc);
1636 io_req = (struct fnic_io_req *)CMD_SP(sc);
1637 if (io_req)
1642 if (io_req)
1647 if (io_req) {
1648 fnic_release_ioreq_buf(fnic, io_req, sc);
1649 mempool_free(io_req, fnic->io_req_pool);