All of lore.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>,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>,
	Himanshu Madhani <himanshu.madhani@oracle.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>
Subject: [PATCH v3 33/48] scsi: mesh: Move the SCSI pointer to private command data
Date: Fri, 11 Feb 2022 14:32:32 -0800	[thread overview]
Message-ID: <20220211223247.14369-34-bvanassche@acm.org> (raw)
In-Reply-To: <20220211223247.14369-1-bvanassche@acm.org>

Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 drivers/scsi/mesh.c | 20 +++++++++++++-------
 drivers/scsi/mesh.h | 11 +++++++++++
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c
index ca133e0a140a..de9ae36def42 100644
--- a/drivers/scsi/mesh.c
+++ b/drivers/scsi/mesh.c
@@ -586,10 +586,12 @@ static void mesh_done(struct mesh_state *ms, int start_next)
 	ms->current_req = NULL;
 	tp->current_req = NULL;
 	if (cmd) {
+		struct scsi_pointer *scsi_pointer = mesh_scsi_pointer(cmd);
+
 		set_host_byte(cmd, ms->stat);
-		set_status_byte(cmd, cmd->SCp.Status);
+		set_status_byte(cmd, scsi_pointer->Status);
 		if (ms->stat == DID_OK)
-			scsi_msg_to_host_byte(cmd, cmd->SCp.Message);
+			scsi_msg_to_host_byte(cmd, scsi_pointer->Message);
 		if (DEBUG_TARGET(cmd)) {
 			printk(KERN_DEBUG "mesh_done: result = %x, data_ptr=%d, buflen=%d\n",
 			       cmd->result, ms->data_ptr, scsi_bufflen(cmd));
@@ -603,7 +605,7 @@ static void mesh_done(struct mesh_state *ms, int start_next)
 			}
 #endif
 		}
-		cmd->SCp.this_residual -= ms->data_ptr;
+		scsi_pointer->this_residual -= ms->data_ptr;
 		scsi_done(cmd);
 	}
 	if (start_next) {
@@ -1171,7 +1173,7 @@ static void handle_msgin(struct mesh_state *ms)
 	if (ms->n_msgin < msgin_length(ms))
 		goto reject;
 	if (cmd)
-		cmd->SCp.Message = code;
+		mesh_scsi_pointer(cmd)->Message = code;
 	switch (code) {
 	case COMMAND_COMPLETE:
 		break;
@@ -1262,7 +1264,7 @@ static void set_dma_cmds(struct mesh_state *ms, struct scsi_cmnd *cmd)
 	if (cmd) {
 		int nseg;
 
-		cmd->SCp.this_residual = scsi_bufflen(cmd);
+		mesh_scsi_pointer(cmd)->this_residual = scsi_bufflen(cmd);
 
 		nseg = scsi_dma_map(cmd);
 		BUG_ON(nseg < 0);
@@ -1592,10 +1594,13 @@ static void cmd_complete(struct mesh_state *ms)
 			break;
 		case statusing:
 			if (cmd) {
-				cmd->SCp.Status = mr->fifo;
+				struct scsi_pointer *scsi_pointer =
+					mesh_scsi_pointer(cmd);
+
+				scsi_pointer->Status = mr->fifo;
 				if (DEBUG_TARGET(cmd))
 					printk(KERN_DEBUG "mesh: status is %x\n",
-					       cmd->SCp.Status);
+					       scsi_pointer->Status);
 			}
 			ms->msgphase = msg_in;
 			break;
@@ -1837,6 +1842,7 @@ static struct scsi_host_template mesh_template = {
 	.sg_tablesize			= SG_ALL,
 	.cmd_per_lun			= 2,
 	.max_segment_size		= 65535,
+	.cmd_size			= sizeof(struct mesh_cmd_priv),
 };
 
 static int mesh_probe(struct macio_dev *mdev, const struct of_device_id *match)
diff --git a/drivers/scsi/mesh.h b/drivers/scsi/mesh.h
index ee53c05ace95..1afa8b37295b 100644
--- a/drivers/scsi/mesh.h
+++ b/drivers/scsi/mesh.h
@@ -8,6 +8,17 @@
 #ifndef _MESH_H
 #define _MESH_H
 
+struct mesh_cmd_priv {
+	struct scsi_pointer scsi_pointer;
+};
+
+static inline struct scsi_pointer *mesh_scsi_pointer(struct scsi_cmnd *cmd)
+{
+	struct mesh_cmd_priv *mcmd = scsi_cmd_priv(cmd);
+
+	return &mcmd->scsi_pointer;
+}
+
 /*
  * Registers in the MESH controller.
  */

  parent reply	other threads:[~2022-02-11 22:34 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-11 22:31 [PATCH v3 00/48] Remove the SCSI pointer from struct scsi_cmnd Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 01/48] scsi: ips: Remove an unreachable statement Bart Van Assche
2022-02-14  9:40   ` Hannes Reinecke
2022-02-14 19:59   ` Himanshu Madhani
2022-02-11 22:32 ` [PATCH v3 02/48] scsi: ips: Change the return type of ips_release() into 'void' Bart Van Assche
2022-02-14  9:43   ` Hannes Reinecke
2022-02-15  1:33     ` Bart Van Assche
2022-02-14 20:01   ` Himanshu Madhani
2022-02-11 22:32 ` [PATCH v3 03/48] scsi: ips: Use true and false instead of TRUE and FALSE Bart Van Assche
2022-02-14  9:43   ` Hannes Reinecke
2022-02-14 20:02   ` Himanshu Madhani
2022-02-11 22:32 ` [PATCH v3 04/48] scsi: nsp_cs: Change the return type of two functions into 'void' Bart Van Assche
2022-02-14  9:44   ` Hannes Reinecke
2022-02-14 20:04   ` Himanshu Madhani
2022-02-11 22:32 ` [PATCH v3 05/48] scsi: nsp_cs: Use true and false instead of TRUE and FALSE Bart Van Assche
2022-02-14  9:44   ` Hannes Reinecke
2022-02-14 20:05   ` Himanshu Madhani
2022-02-11 22:32 ` [PATCH v3 06/48] scsi: Remove drivers/scsi/scsi.h Bart Van Assche
2022-02-14  9:45   ` Hannes Reinecke
2022-02-11 22:32 ` [PATCH v3 07/48] scsi: NCR5380: Remove the NCR5380_CMD_SIZE macro Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 08/48] scsi: NCR5380: Introduce the NCR5380_cmd_priv() function Bart Van Assche
2022-02-14  9:46   ` Hannes Reinecke
2022-02-14 20:09   ` Himanshu Madhani
2022-02-11 22:32 ` [PATCH v3 09/48] scsi: NCR5380: Move the SCSI pointer to private command data Bart Van Assche
2022-02-14  9:47   ` Hannes Reinecke
2022-02-11 22:32 ` [PATCH v3 10/48] scsi: arm: Rename arm/scsi.h into arm/arm_scsi.h Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 11/48] scsi: arm: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 12/48] scsi: 53c700: Stop clearing SCSI pointer fields Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 13/48] scsi: aacraid: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 14/48] scsi: advansys: " Bart Van Assche
2022-02-14  9:54   ` Hannes Reinecke
2022-02-11 22:32 ` [PATCH v3 15/48] scsi: aha1542: Remove a set-but-not-used array Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 16/48] scsi: aha152x: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 17/48] scsi: bfa: Stop using the SCSI pointer Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 18/48] scsi: csio: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 19/48] scsi: dc395x: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 20/48] scsi: esp_scsi: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 21/48] scsi: fdomain: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 22/48] scsi: fnic: Fix a tracing statement Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 23/48] scsi: fnic: Stop using the SCSI pointer Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 24/48] scsi: hptiop: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 25/48] scsi: imm: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 26/48] scsi: iscsi: Stop using the SCSI pointer Bart Van Assche
2022-02-13 22:12   ` Lee Duncan
2022-02-14  9:57   ` Hannes Reinecke
2022-02-14 20:12   ` Himanshu Madhani
2022-02-11 22:32 ` [PATCH v3 27/48] scsi: initio: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 28/48] scsi: libfc: " Bart Van Assche
2022-02-14 11:55   ` Hannes Reinecke
2022-02-15  3:00     ` Bart Van Assche
2022-02-15  7:02       ` Hannes Reinecke
2022-02-16 20:09         ` Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 29/48] scsi: mac53c94: Fix a set-but-not-used compiler warning Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 30/48] scsi: mac53c94: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 31/48] scsi: megaraid: Stop using the SCSI pointer Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 32/48] scsi: megasas: " Bart Van Assche
2022-02-11 22:32 ` Bart Van Assche [this message]
2022-02-11 22:32 ` [PATCH v3 34/48] scsi: mvsas: Fix a set-but-not-used warning Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 35/48] scsi: mvumi: Stop using the SCSI pointer Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 36/48] scsi: nsp32: " Bart Van Assche
2022-02-14  4:02   ` Masanori Goto
2022-02-11 22:32 ` [PATCH v3 37/48] scsi: nsp_cs: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 38/48] scsi: sym53c500_cs: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 39/48] scsi: ppa: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 40/48] scsi: qla1280: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 41/48] scsi: qla2xxx: Stop using the SCSI pointer Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 42/48] scsi: smartpqi: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 43/48] scsi: sym53c8xx_2: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 44/48] scsi: usb: Stop using the SCSI pointer Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 45/48] scsi: wd719x: " Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 46/48] scsi: wd33c93: Move the SCSI pointer to private command data Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 47/48] scsi: zalon: Stop using the SCSI pointer Bart Van Assche
2022-02-11 22:32 ` [PATCH v3 48/48] scsi: core: Remove struct scsi_pointer from struct scsi_cmnd 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=20220211223247.14369-34-bvanassche@acm.org \
    --to=bvanassche@acm.org \
    --cc=himanshu.madhani@oracle.com \
    --cc=jejb@linux.ibm.com \
    --cc=johannes.thumshirn@wdc.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.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.