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 |
next prev 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.