Re: [PATCH v4 12/52] NCR5380: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
From: Bart Van Assche <bvanassche@acm.org>
Date: 2021-08-07 18:09:36
Subsystem:
ncr 5380 scsi drivers, scsi subsystem, the rest · Maintainers:
Finn Thain, Michael Schmitz, "James E.J. Bottomley", "Martin K. Petersen", Linus Torvalds
On 8/6/21 1:24 PM, Michael Schmitz wrote:
Am 07.08.2021 um 03:56 schrieb Bart Van Assche:quoted
On 8/6/21 2:24 AM, Finn Thain wrote:quoted
On Thu, 5 Aug 2021, Bart Van Assche wrote:quoted
Prepare for removal of the request pointer by using scsi_cmd_to_rq() instead. This patch does not change any functionality. Signed-off-by: Bart Van Assche <bvanassche@acm.org>Acked-by: Finn Thain <fthain@linux-m68k.org> Did you consider replacing rq_data_dir(cmd->request) with cmd->sc_data_direction for this driver?That's an interesting suggestion but I prefer to minimize the number of changes I make in NCR5380 drivers since I do not have access to a setup on which I can test any of these drivers.The NCR5380 driver gets frequent testing on my Atari, so unless it's something integration specific, we ought to see any regressions there.
How about replacing patch 12/52 with the (totally untested) patch below? Thanks, Bart. Subject: [PATCH] NCR5380: Use sc_data_direction instead of rq_data_dir() This patch prepares for the removal of the request pointer from struct scsi_cmnd and does not change any functionality. Suggested-by: Finn Thain <fthain@linux-m68k.org> Cc: Finn Thain <fthain@linux-m68k.org> Cc: Michael Schmitz <schmitzmic@gmail.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> --- drivers/scsi/NCR5380.c | 6 +++--- drivers/scsi/sun3_scsi.c | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
index 3baadd068768..a85589a2a8af 100644
--- a/drivers/scsi/NCR5380.c
+++ b/drivers/scsi/NCR5380.c@@ -778,7 +778,7 @@ static void NCR5380_dma_complete(struct Scsi_Host *instance) } #ifdef CONFIG_SUN3 - if ((sun3scsi_dma_finish(rq_data_dir(hostdata->connected->request)))) { + if (sun3scsi_dma_finish(hostdata->connected->sc_data_direction)) { pr_err("scsi%d: overrun in UDC counter -- not prepared to deal with this!\n", instance->host_no); BUG();
@@ -1710,7 +1710,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) count = sun3scsi_dma_xfer_len(hostdata, cmd); if (count > 0) { - if (rq_data_dir(cmd->request)) + if (cmd->sc_data_direction == DMA_TO_DEVICE) sun3scsi_dma_send_setup(hostdata, cmd->SCp.ptr, count); else
@@ -2158,7 +2158,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance) count = sun3scsi_dma_xfer_len(hostdata, tmp); if (count > 0) { - if (rq_data_dir(tmp->request)) + if (tmp->sc_data_direction == DMA_TO_DEVICE) sun3scsi_dma_send_setup(hostdata, tmp->SCp.ptr, count); else
diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c
index 2e3fbc2fae97..af71ab112a84 100644
--- a/drivers/scsi/sun3_scsi.c
+++ b/drivers/scsi/sun3_scsi.c@@ -366,10 +366,11 @@ static inline int sun3scsi_dma_start(unsigned long count, unsigned char *data) } /* clean up after our dma is done */ -static int sun3scsi_dma_finish(int write_flag) +static int sun3scsi_dma_finish(enum dma_data_direction data_dir) { unsigned short __maybe_unused count; unsigned short fifo; + const bool write_flag = data_dir == DMA_TO_DEVICE; int ret = 0; sun3_dma_active = 0;