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>,
Hannes Reinecke <hare@suse.de>,
Saurav Kashyap <skashyap@marvell.com>,
Javed Hasan <jhasan@marvell.com>,
GR-QLogic-Storage-Upstream@marvell.com,
"James E.J. Bottomley" <jejb@linux.ibm.com>
Subject: [PATCH v4 30/50] scsi: qedf: Stop using the SCSI pointer
Date: Wed, 16 Feb 2022 13:02:13 -0800 [thread overview]
Message-ID: <20220216210233.28774-31-bvanassche@acm.org> (raw)
In-Reply-To: <20220216210233.28774-1-bvanassche@acm.org>
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. Remove the CMD_SCSI_STATUS() assignment because the
assigned value is not used.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Cc: Hannes Reinecke <hare@suse.de>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qedf/qedf.h | 10 +++++++++-
drivers/scsi/qedf/qedf_io.c | 25 ++++++++++++-------------
drivers/scsi/qedf/qedf_main.c | 3 ++-
3 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/drivers/scsi/qedf/qedf.h b/drivers/scsi/qedf/qedf.h
index ca987451b17e..c5c0bbdafc4e 100644
--- a/drivers/scsi/qedf/qedf.h
+++ b/drivers/scsi/qedf/qedf.h
@@ -91,7 +91,6 @@ enum qedf_ioreq_event {
#define FC_GOOD 0
#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER (0x1<<2)
#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER (0x1<<3)
-#define CMD_SCSI_STATUS(Cmnd) ((Cmnd)->SCp.Status)
#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID (0x1<<0)
#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID (0x1<<1)
struct qedf_ioreq {
@@ -189,6 +188,15 @@ struct qedf_ioreq {
unsigned int alloc;
};
+struct qedf_cmd_priv {
+ struct qedf_ioreq *io_req;
+};
+
+static inline struct qedf_cmd_priv *qedf_priv(struct scsi_cmnd *cmd)
+{
+ return scsi_cmd_priv(cmd);
+}
+
extern struct workqueue_struct *qedf_io_wq;
struct qedf_rport {
diff --git a/drivers/scsi/qedf/qedf_io.c b/drivers/scsi/qedf/qedf_io.c
index 99a56ca1fb16..81668cfcdd55 100644
--- a/drivers/scsi/qedf/qedf_io.c
+++ b/drivers/scsi/qedf/qedf_io.c
@@ -857,7 +857,7 @@ int qedf_post_io_req(struct qedf_rport *fcport, struct qedf_ioreq *io_req)
/* Initialize rest of io_req fileds */
io_req->data_xfer_len = scsi_bufflen(sc_cmd);
- sc_cmd->SCp.ptr = (char *)io_req;
+ qedf_priv(sc_cmd)->io_req = io_req;
io_req->sge_type = QEDF_IOREQ_FAST_SGE; /* Assume fast SGL by default */
/* Record which cpu this request is associated with */
@@ -1065,8 +1065,7 @@ static void qedf_parse_fcp_rsp(struct qedf_ioreq *io_req,
io_req->fcp_resid = fcp_rsp->fcp_resid;
io_req->scsi_comp_flags = rsp_flags;
- CMD_SCSI_STATUS(sc_cmd) = io_req->cdb_status =
- fcp_rsp->scsi_status_code;
+ io_req->cdb_status = fcp_rsp->scsi_status_code;
if (rsp_flags &
FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID)
@@ -1150,9 +1149,9 @@ void qedf_scsi_completion(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
return;
}
- if (!sc_cmd->SCp.ptr) {
- QEDF_WARN(&(qedf->dbg_ctx), "SCp.ptr is NULL, returned in "
- "another context.\n");
+ if (!qedf_priv(sc_cmd)->io_req) {
+ QEDF_WARN(&(qedf->dbg_ctx),
+ "io_req is NULL, returned in another context.\n");
return;
}
@@ -1312,7 +1311,7 @@ void qedf_scsi_completion(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
clear_bit(QEDF_CMD_OUTSTANDING, &io_req->flags);
io_req->sc_cmd = NULL;
- sc_cmd->SCp.ptr = NULL;
+ qedf_priv(sc_cmd)->io_req = NULL;
scsi_done(sc_cmd);
kref_put(&io_req->refcount, qedf_release_cmd);
}
@@ -1354,9 +1353,9 @@ void qedf_scsi_done(struct qedf_ctx *qedf, struct qedf_ioreq *io_req,
goto bad_scsi_ptr;
}
- if (!sc_cmd->SCp.ptr) {
- QEDF_WARN(&(qedf->dbg_ctx), "SCp.ptr is NULL, returned in "
- "another context.\n");
+ if (!qedf_priv(sc_cmd)->io_req) {
+ QEDF_WARN(&(qedf->dbg_ctx),
+ "io_req is NULL, returned in another context.\n");
return;
}
@@ -1409,7 +1408,7 @@ void qedf_scsi_done(struct qedf_ctx *qedf, struct qedf_ioreq *io_req,
qedf_trace_io(io_req->fcport, io_req, QEDF_IO_TRACE_RSP);
io_req->sc_cmd = NULL;
- sc_cmd->SCp.ptr = NULL;
+ qedf_priv(sc_cmd)->io_req = NULL;
scsi_done(sc_cmd);
kref_put(&io_req->refcount, qedf_release_cmd);
return;
@@ -2432,8 +2431,8 @@ int qedf_initiate_tmf(struct scsi_cmnd *sc_cmd, u8 tm_flags)
(tm_flags == FCP_TMF_TGT_RESET) ? "TARGET RESET" :
"LUN RESET");
- if (sc_cmd->SCp.ptr) {
- io_req = (struct qedf_ioreq *)sc_cmd->SCp.ptr;
+ if (qedf_priv(sc_cmd)->io_req) {
+ io_req = qedf_priv(sc_cmd)->io_req;
ref_cnt = kref_read(&io_req->refcount);
QEDF_ERR(NULL,
"orig io_req = %p xid = 0x%x ref_cnt = %d.\n",
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
index cdc66e2a9488..05b609a0e80d 100644
--- a/drivers/scsi/qedf/qedf_main.c
+++ b/drivers/scsi/qedf/qedf_main.c
@@ -740,7 +740,7 @@ static int qedf_eh_abort(struct scsi_cmnd *sc_cmd)
}
- io_req = (struct qedf_ioreq *)sc_cmd->SCp.ptr;
+ io_req = qedf_priv(sc_cmd)->io_req;
if (!io_req) {
QEDF_ERR(&qedf->dbg_ctx,
"sc_cmd not queued with lld, sc_cmd=%p op=0x%02x, port_id=%06x\n",
@@ -996,6 +996,7 @@ static struct scsi_host_template qedf_host_template = {
.sg_tablesize = QEDF_MAX_BDS_PER_CMD,
.can_queue = FCOE_PARAMS_NUM_TASKS,
.change_queue_depth = scsi_change_queue_depth,
+ .cmd_size = sizeof(struct qedf_cmd_priv),
};
static int qedf_get_paged_crc_eof(struct sk_buff *skb, int tlen)
next prev parent reply other threads:[~2022-02-16 21:04 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-16 21:01 [PATCH v4 00/50] Remove the SCSI pointer from struct scsi_cmnd Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 01/50] scsi: ips: Remove an unreachable statement Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 02/50] scsi: ips: Change the return type of ips_release() into 'void' Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 03/50] scsi: ips: Use true and false instead of TRUE and FALSE Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 04/50] scsi: nsp_cs: Change the return type of two functions into 'void' Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 05/50] scsi: nsp_cs: Use true and false instead of TRUE and FALSE Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 06/50] scsi: Remove drivers/scsi/scsi.h Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 07/50] scsi: NCR5380: Remove the NCR5380_CMD_SIZE macro Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 08/50] scsi: NCR5380: Introduce the NCR5380_cmd_priv() function Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 09/50] scsi: NCR5380: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 10/50] scsi: arm: Rename arm/scsi.h into arm/arm_scsi.h Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 11/50] scsi: arm: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 12/50] scsi: 53c700: Stop clearing SCSI pointer fields Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 13/50] scsi: aacraid: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 14/50] scsi: advansys: " Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 15/50] scsi: aha1542: Remove a set-but-not-used array Bart Van Assche
2022-02-16 21:01 ` [PATCH v4 16/50] scsi: aha152x: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 17/50] scsi: bfa: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 18/50] scsi: csio: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 19/50] scsi: dc395x: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 20/50] scsi: esp_scsi: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 21/50] scsi: fdomain: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 22/50] scsi: fnic: Fix a tracing statement Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 23/50] scsi: fnic: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 24/50] scsi: hptiop: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 25/50] scsi: imm: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 26/50] scsi: iscsi: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 27/50] scsi: initio: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 28/50] scsi: libfc: " Bart Van Assche
2022-02-17 7:05 ` Hannes Reinecke
2022-02-16 21:02 ` [PATCH v4 29/50] scsi: bnx2fc: " Bart Van Assche
2022-02-17 7:06 ` Hannes Reinecke
2022-02-16 21:02 ` Bart Van Assche [this message]
2022-02-17 7:06 ` [PATCH v4 30/50] scsi: qedf: " Hannes Reinecke
2022-02-16 21:02 ` [PATCH v4 31/50] scsi: mac53c94: Fix a set-but-not-used compiler warning Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 32/50] scsi: mac53c94: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 33/50] scsi: megaraid: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 34/50] scsi: megasas: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 35/50] scsi: mesh: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 36/50] scsi: mvsas: Fix a set-but-not-used warning Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 37/50] scsi: mvumi: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 38/50] scsi: nsp32: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 39/50] scsi: nsp_cs: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 40/50] scsi: sym53c500_cs: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 41/50] scsi: ppa: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 42/50] scsi: qla1280: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 43/50] scsi: qla2xxx: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 44/50] scsi: smartpqi: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 45/50] scsi: sym53c8xx_2: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 46/50] scsi: usb: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 47/50] scsi: wd719x: " Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 48/50] scsi: wd33c93: Move the SCSI pointer to private command data Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 49/50] scsi: zalon: Stop using the SCSI pointer Bart Van Assche
2022-02-16 21:02 ` [PATCH v4 50/50] scsi: core: Remove struct scsi_pointer from struct scsi_cmnd Bart Van Assche
2022-02-18 0:45 ` [PATCH v4 00/50] Remove the SCSI pointer " Finn Thain
2022-02-18 19:43 ` 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=20220216210233.28774-31-bvanassche@acm.org \
--to=bvanassche@acm.org \
--cc=GR-QLogic-Storage-Upstream@marvell.com \
--cc=hare@suse.de \
--cc=jejb@linux.ibm.com \
--cc=jhasan@marvell.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=skashyap@marvell.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