}
 
 #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();
                                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
                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
 
 }
 
 /* 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)
 {
+       const bool write_flag = data_dir == DMA_TO_DEVICE;
        unsigned short __maybe_unused count;
        unsigned short fifo;
        int ret = 0;