diff options
author | Alex Henrie <alexhenrie24@gmail.com> | 2023-08-31 07:19:42 +0200 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2023-09-05 11:26:49 +0200 |
commit | 31a0865bf593e59c4433a3624b4c87c40049ed9a (patch) | |
tree | ae7209039406236fdff3fca7862fa3186c5888a3 | |
parent | scsi: megaraid_sas: Fix deadlock on firmware crashdump (diff) | |
download | linux-31a0865bf593e59c4433a3624b4c87c40049ed9a.tar.xz linux-31a0865bf593e59c4433a3624b4c87c40049ed9a.zip |
scsi: ppa: Fix accidentally reversed conditions for 16-bit and 32-bit EPP
The conditions were correct in the ppa_in() function but not in the
ppa_out() function.
Fixes: 68a4f84a17c1 ("scsi: ppa: Add a module parameter for the transfer mode")
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Link: https://lore.kernel.org/r/20230831051945.515476-1-alexhenrie24@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r-- | drivers/scsi/ppa.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/ppa.c b/drivers/scsi/ppa.c index 19f0b93fa3d8..d592ee9170c1 100644 --- a/drivers/scsi/ppa.c +++ b/drivers/scsi/ppa.c @@ -307,9 +307,9 @@ static int ppa_out(ppa_struct *dev, char *buffer, int len) case PPA_EPP_8: epp_reset(ppb); w_ctr(ppb, 0x4); - if (dev->mode == PPA_EPP_32 && !(((long) buffer | len) & 0x01)) + if (dev->mode == PPA_EPP_32 && !(((long) buffer | len) & 0x03)) outsl(ppb + 4, buffer, len >> 2); - else if (dev->mode == PPA_EPP_16 && !(((long) buffer | len) & 0x03)) + else if (dev->mode == PPA_EPP_16 && !(((long) buffer | len) & 0x01)) outsw(ppb + 4, buffer, len >> 1); else outsb(ppb + 4, buffer, len); |