summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFinn Thain <fthain@telegraphics.com.au>2017-01-16 02:50:57 +0300
committerMartin K. Petersen <martin.petersen@oracle.com>2017-02-01 05:39:22 +0300
commit546a4d1812b647fddad58a4416c7a44c27bb0499 (patch)
tree5af0c9c4319417fa63d4fbcb4a1cfaefa91d2374
parentb15e791d0c51e778353777b3dd2993ee0a83388e (diff)
downloadlinux-546a4d1812b647fddad58a4416c7a44c27bb0499.tar.xz
scsi: atari_scsi: Reset DMA during bus reset only under ST-DMA lock
The atari_scsi driver should not access Falcon DMA chip registers unless it has acquired exclusive access to that chip. If the driver doesn't have exclusive access then there's no need for a DMA reset as there are no scsi commands in progress. Signed-off-by: Finn Thain <fthain@telegraphics.com.au> Tested-by: Ondrej Zary <linux@rainbow-software.org> Tested-by: Michael Schmitz <schmitzmic@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/atari_scsi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/atari_scsi.c b/drivers/scsi/atari_scsi.c
index b2ffab6577a6..f792420c533e 100644
--- a/drivers/scsi/atari_scsi.c
+++ b/drivers/scsi/atari_scsi.c
@@ -682,7 +682,8 @@ static int atari_scsi_bus_reset(struct scsi_cmnd *cmd)
if (IS_A_TT()) {
tt_scsi_dma.dma_ctrl = 0;
} else {
- st_dma.dma_mode_status = 0x90;
+ if (stdma_is_locked_by(scsi_falcon_intr))
+ st_dma.dma_mode_status = 0x90;
atari_dma_active = 0;
atari_dma_orig_addr = NULL;
}