public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Bart Van Assche <bvanassche@acm.org>
To: "Martin K . Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org, Bart Van Assche <bvanassche@acm.org>,
	Satish Kharat <satishkh@cisco.com>,
	Sesidhar Baddela <sebaddel@cisco.com>,
	Karan Tilak Kumar <kartilak@cisco.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>
Subject: [PATCH 19/50] fnic: Use blk_req() instead of scsi_cmnd.request
Date: Fri, 14 May 2021 14:32:34 -0700	[thread overview]
Message-ID: <20210514213356.5264-20-bvanassche@acm.org> (raw)
In-Reply-To: <20210514213356.5264-1-bvanassche@acm.org>

Prepare for removal of the request pointer by using blk_req() instead. This
patch does not change any functionality.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 drivers/scsi/fnic/fnic_scsi.c | 40 ++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
index 762cc8bd2653..5a0dcea64ad3 100644
--- a/drivers/scsi/fnic/fnic_scsi.c
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -107,7 +107,7 @@ static void fnic_cleanup_io(struct fnic *fnic);
 static inline spinlock_t *fnic_io_lock_hash(struct fnic *fnic,
 					    struct scsi_cmnd *sc)
 {
-	u32 hash = sc->request->tag & (FNIC_IO_LOCKS - 1);
+	u32 hash = blk_req(sc)->tag & (FNIC_IO_LOCKS - 1);
 
 	return &fnic->io_req_lock[hash];
 }
@@ -390,7 +390,7 @@ static inline int fnic_queue_wq_copy_desc(struct fnic *fnic,
 	    (rp->flags & FC_RP_FLAGS_RETRY))
 		exch_flags |= FCPIO_ICMND_SRFLAG_RETRY;
 
-	fnic_queue_wq_copy_desc_icmnd_16(wq, sc->request->tag,
+	fnic_queue_wq_copy_desc_icmnd_16(wq, blk_req(sc)->tag,
 					 0, exch_flags, io_req->sgl_cnt,
 					 SCSI_SENSE_BUFFERSIZE,
 					 io_req->sgl_list_pa,
@@ -511,7 +511,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
 	sg_count = scsi_dma_map(sc);
 	if (sg_count < 0) {
 		FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
-			  sc->request->tag, sc, 0, sc->cmnd[0],
+			  blk_req(sc)->tag, sc, 0, sc->cmnd[0],
 			  sg_count, CMD_STATE(sc));
 		mempool_free(io_req, fnic->io_req_pool);
 		goto out;
@@ -571,7 +571,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
 		 * refetch the pointer under the lock.
 		 */
 		FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
-			  sc->request->tag, sc, 0, 0, 0,
+			  blk_req(sc)->tag, sc, 0, 0, 0,
 			  (((u64)CMD_FLAGS(sc) << 32) | CMD_STATE(sc)));
 		io_req = (struct fnic_io_req *)CMD_SP(sc);
 		CMD_SP(sc) = NULL;
@@ -603,7 +603,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
 			sc->cmnd[5]);
 
 	FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no,
-		  sc->request->tag, sc, io_req,
+		  blk_req(sc)->tag, sc, io_req,
 		  sg_count, cmd_trace,
 		  (((u64)CMD_FLAGS(sc) >> 32) | CMD_STATE(sc)));
 
@@ -1371,7 +1371,7 @@ static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data,
 	unsigned long start_time = 0;
 	struct fnic_stats *fnic_stats = &fnic->fnic_stats;
 
-	io_lock = fnic_io_lock_tag(fnic, sc->request->tag);
+	io_lock = fnic_io_lock_tag(fnic, blk_req(sc)->tag);
 	spin_lock_irqsave(io_lock, flags);
 
 	io_req = (struct fnic_io_req *)CMD_SP(sc);
@@ -1413,7 +1413,7 @@ static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data,
 	sc->result = DID_TRANSPORT_DISRUPTED << 16;
 	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
 		      "fnic_cleanup_io: tag:0x%x : sc:0x%p duration = %lu DID_TRANSPORT_DISRUPTED\n",
-		      sc->request->tag, sc, (jiffies - start_time));
+		      blk_req(sc)->tag, sc, jiffies - start_time);
 
 	if (atomic64_read(&fnic->io_cmpl_skip))
 		atomic64_dec(&fnic->io_cmpl_skip);
@@ -1425,10 +1425,10 @@ static bool fnic_cleanup_io_iter(struct scsi_cmnd *sc, void *data,
 		if (!(CMD_FLAGS(sc) & FNIC_IO_ISSUED))
 			shost_printk(KERN_ERR, fnic->lport->host,
 				     "Calling done for IO not issued to fw: tag:0x%x sc:0x%p\n",
-				     sc->request->tag, sc);
+				     blk_req(sc)->tag, sc);
 
 		FNIC_TRACE(fnic_cleanup_io,
-			   sc->device->host->host_no, sc->request->tag, sc,
+			   sc->device->host->host_no, blk_req(sc)->tag, sc,
 			   jiffies_to_msecs(jiffies - start_time),
 			   0, ((u64)sc->cmnd[0] << 32 |
 			       (u64)sc->cmnd[2] << 24 |
@@ -1566,7 +1566,7 @@ static bool fnic_rport_abort_io_iter(struct scsi_cmnd *sc, void *data,
 {
 	struct fnic_rport_abort_io_iter_data *iter_data = data;
 	struct fnic *fnic = iter_data->fnic;
-	int abt_tag = sc->request->tag;
+	int abt_tag = blk_req(sc)->tag;
 	struct fnic_io_req *io_req;
 	spinlock_t *io_lock;
 	unsigned long flags;
@@ -1757,7 +1757,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
 	term_stats = &fnic->fnic_stats.term_stats;
 
 	rport = starget_to_rport(scsi_target(sc->device));
-	tag = sc->request->tag;
+	tag = blk_req(sc)->tag;
 	FNIC_SCSI_DBG(KERN_DEBUG,
 		fnic->lport->host,
 		"Abort Cmd called FCID 0x%x, LUN 0x%llx TAG %x flags %x\n",
@@ -1842,7 +1842,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
 	/* Now queue the abort command to firmware */
 	int_to_scsilun(sc->device->lun, &fc_lun);
 
-	if (fnic_queue_abort_io_req(fnic, sc->request->tag, task_req,
+	if (fnic_queue_abort_io_req(fnic, blk_req(sc)->tag, task_req,
 				    fc_lun.scsi_lun, io_req)) {
 		spin_lock_irqsave(io_lock, flags);
 		if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING)
@@ -1944,7 +1944,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
 
 fnic_abort_cmd_end:
 	FNIC_TRACE(fnic_abort_cmd, sc->device->host->host_no,
-		  sc->request->tag, sc,
+		  blk_req(sc)->tag, sc,
 		  jiffies_to_msecs(jiffies - start_time),
 		  0, ((u64)sc->cmnd[0] << 32 |
 		  (u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |
@@ -1994,7 +1994,7 @@ static inline int fnic_queue_dr_io_req(struct fnic *fnic,
 	/* fill in the lun info */
 	int_to_scsilun(sc->device->lun, &fc_lun);
 
-	fnic_queue_wq_copy_desc_itmf(wq, sc->request->tag | FNIC_TAG_DEV_RST,
+	fnic_queue_wq_copy_desc_itmf(wq, blk_req(sc)->tag | FNIC_TAG_DEV_RST,
 				     0, FCPIO_ITMF_LUN_RESET, SCSI_NO_TAG,
 				     fc_lun.scsi_lun, io_req->port_id,
 				     fnic->config.ra_tov, fnic->config.ed_tov);
@@ -2025,7 +2025,7 @@ static bool fnic_pending_aborts_iter(struct scsi_cmnd *sc,
 	struct fnic_pending_aborts_iter_data *iter_data = data;
 	struct fnic *fnic = iter_data->fnic;
 	struct scsi_device *lun_dev = iter_data->lun_dev;
-	int abt_tag = sc->request->tag;
+	int abt_tag = blk_req(sc)->tag;
 	struct fnic_io_req *io_req;
 	spinlock_t *io_lock;
 	unsigned long flags;
@@ -2206,14 +2206,16 @@ static int fnic_clean_pending_aborts(struct fnic *fnic,
 static inline int
 fnic_scsi_host_start_tag(struct fnic *fnic, struct scsi_cmnd *sc)
 {
-	struct request_queue *q = sc->request->q;
+	struct request_queue *q = blk_req(sc)->q;
 	struct request *dummy;
 
 	dummy = blk_mq_alloc_request(q, REQ_OP_WRITE, BLK_MQ_REQ_NOWAIT);
 	if (IS_ERR(dummy))
 		return SCSI_NO_TAG;
 
-	sc->tag = sc->request->tag = dummy->tag;
+	WARN_ON_ONCE(blk_req(sc)->tag);
+	WARN_ON_ONCE(sc->tag);
+	sc->tag = blk_req(sc)->tag = dummy->tag;
 	sc->host_scribble = (unsigned char *)dummy;
 
 	return dummy->tag;
@@ -2284,7 +2286,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
 	CMD_FLAGS(sc) = FNIC_DEVICE_RESET;
 	/* Allocate tag if not present */
 
-	tag = sc->request->tag;
+	tag = blk_req(sc)->tag;
 	if (unlikely(tag < 0)) {
 		/*
 		 * Really should fix the midlayer to pass in a proper
@@ -2459,7 +2461,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
 
 fnic_device_reset_end:
 	FNIC_TRACE(fnic_device_reset, sc->device->host->host_no,
-		  sc->request->tag, sc,
+		  blk_req(sc)->tag, sc,
 		  jiffies_to_msecs(jiffies - start_time),
 		  0, ((u64)sc->cmnd[0] << 32 |
 		  (u64)sc->cmnd[2] << 24 | (u64)sc->cmnd[3] << 16 |

  parent reply	other threads:[~2021-05-14 21:34 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-14 21:32 [PATCH 00/50] Remove the request pointer from struct scsi_cmnd Bart Van Assche
2021-05-14 21:32 ` [PATCH 01/50] core: Introduce the blk_req() function Bart Van Assche
2021-05-15  6:47   ` Christoph Hellwig
2021-05-17 16:07     ` Bart Van Assche
2021-05-14 21:32 ` [PATCH 02/50] core: Use blk_req() instead of scsi_cmnd.request Bart Van Assche
2021-05-14 21:32 ` [PATCH 03/50] sd: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 04/50] sr: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 05/50] scsi_transport_fc: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 06/50] scsi_transport_spi: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 07/50] ata: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 08/50] rdma/iser: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 09/50] rdma/srp: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 10/50] zfcp: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 11/50] 53c700: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 12/50] NCR5380: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 13/50] aacraid: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 14/50] advansys: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 15/50] bnx2i: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 16/50] csiostor: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 17/50] cxlflash: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 18/50] dpt_i2o: " Bart Van Assche
2021-05-14 21:32 ` Bart Van Assche [this message]
2021-05-14 21:32 ` [PATCH 20/50] hisi_sas: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 21/50] hpsa: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 22/50] ibmvfc: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 23/50] ibmvscsi: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 24/50] ips: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 25/50] libsas: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 26/50] lpfc: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 27/50] megaraid: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 28/50] mpt3sas: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 29/50] mvumi: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 30/50] myrb: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 31/50] myrs: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 32/50] ncr53c8xx: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 33/50] qedf: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 34/50] qedi: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 35/50] qla1280: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 36/50] qla2xxx: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 37/50] qla4xxx: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 38/50] qlogicpti: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 39/50] scsi_debug: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 40/50] smartpqi: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 41/50] snic: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 42/50] stex: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 43/50] sun3_scsi: " Bart Van Assche
2021-05-14 21:32 ` [PATCH 44/50] sym53c8xx: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 45/50] ufs: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 46/50] virtio_scsi: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 47/50] xen-scsifront: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 48/50] tcm_loop: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 49/50] usb-storage: " Bart Van Assche
2021-05-15 15:09   ` Alan Stern
2021-05-14 21:33 ` [PATCH 50/50] core: Remove the request member from struct scsi_cmnd Bart Van Assche
2021-05-14 21:33 ` [PATCH 00/50] Remove the request pointer " Bart Van Assche
2021-05-14 21:33 ` [PATCH 01/50] core: Introduce the blk_req() function Bart Van Assche
2021-05-14 21:33 ` [PATCH 02/50] core: Use blk_req() instead of scsi_cmnd.request Bart Van Assche
2021-05-14 21:33 ` [PATCH 03/50] sd: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 04/50] sr: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 05/50] scsi_transport_fc: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 06/50] scsi_transport_spi: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 07/50] ata: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 08/50] rdma/iser: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 09/50] rdma/srp: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 10/50] zfcp: " Bart Van Assche
2021-05-17 17:29   ` Benjamin Block
2021-05-14 21:33 ` [PATCH 11/50] 53c700: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 12/50] NCR5380: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 13/50] aacraid: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 14/50] advansys: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 15/50] bnx2i: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 16/50] csiostor: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 17/50] cxlflash: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 18/50] dpt_i2o: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 19/50] fnic: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 20/50] hisi_sas: " Bart Van Assche
2021-05-17  9:49   ` John Garry
2021-05-14 21:33 ` [PATCH 21/50] hpsa: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 22/50] ibmvfc: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 23/50] ibmvscsi: " Bart Van Assche
2021-05-14 21:33 ` [PATCH 24/50] ips: " Bart Van Assche

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210514213356.5264-20-bvanassche@acm.org \
    --to=bvanassche@acm.org \
    --cc=jejb@linux.ibm.com \
    --cc=kartilak@cisco.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=satishkh@cisco.com \
    --cc=sebaddel@cisco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox