On 8/6/21 1:24 PM, Michael Schmitz wrote: > Am 07.08.2021 um 03:56 schrieb Bart Van Assche: >> On 8/6/21 2:24 AM, Finn Thain wrote: >>> On Thu, 5 Aug 2021, Bart Van Assche wrote: >>> >>>> 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@xxxxxxx> >>> >>> Acked-by: Finn Thain <fthain@xxxxxxxxxxxxxx> >>> >>> 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@xxxxxxxxxxxxxx> Cc: Finn Thain <fthain@xxxxxxxxxxxxxx> Cc: Michael Schmitz <schmitzmic@xxxxxxxxx> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> --- 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;