]> www.infradead.org Git - users/willy/xarray.git/commit
scsi: NCR5380: Check for phase match during PDMA fixup
authorFinn Thain <fthain@linux-m68k.org>
Wed, 7 Aug 2024 03:36:28 +0000 (13:36 +1000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 13 Aug 2024 02:05:49 +0000 (22:05 -0400)
commit5768718da9417331803fc4bc090544c2a93b88dc
tree7347eab71d0775d5ec67a5aed041fe27b46e0eff
parent5551bc30e4a69ad86d0d008e2f56cd59b6583476
scsi: NCR5380: Check for phase match during PDMA fixup

It's not an error for a target to change the bus phase during a transfer.
Unfortunately, the FLAG_DMA_FIXUP workaround does not allow for that -- a
phase change produces a DRQ timeout error and the device borken flag will
be set.

Check the phase match bit during FLAG_DMA_FIXUP processing. Don't forget to
decrement the command residual. While we are here, change shost_printk()
into scmd_printk() for better consistency with other DMA error messages.

Tested-by: Stan Johnson <userm57@yahoo.com>
Fixes: 55181be8ced1 ("ncr5380: Replace redundant flags with FLAG_NO_DMA_FIXUP")
Signed-off-by: Finn Thain <fthain@linux-m68k.org>
Link: https://lore.kernel.org/r/99dc7d1f4c825621b5b120963a69f6cd3e9ca659.1723001788.git.fthain@linux-m68k.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/NCR5380.c