aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/fdomain.c
diff options
context:
space:
mode:
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>2019-07-16 23:40:47 +0300
committerMartin K. Petersen <martin.petersen@oracle.com>2019-07-30 12:17:28 -0400
commit7a1c0b79dbe3423214e70750a5ee38fb617168ab (patch)
treea7a63fe4406e09e820bbc2d58af6f552f86650c9 /drivers/scsi/fdomain.c
parentscsi: fdomain: use BCTL_RST in fdomain_reset() (diff)
downloadlinux-dev-7a1c0b79dbe3423214e70750a5ee38fb617168ab.tar.xz
linux-dev-7a1c0b79dbe3423214e70750a5ee38fb617168ab.zip
scsi: fdomain: use BSTAT_{MSG|CMD|IO} in fdomain_work()
Commit 1697c6a64c49 ("scsi: fdomain: Add register definitions") somehow missed the masking of the 'status' variable with the SCSI phase mask in fdomain_work(), leaving the magic number intact. Fix this issue; while at it, change the order of BSTAT_{MSG|CMD|IO} bits in the MESSAGE IN phase *case* (with no change in the generated object file). Fixes: 1697c6a64c49 ("scsi: fdomain: Add register definitions") Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/fdomain.c')
-rw-r--r--drivers/scsi/fdomain.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/fdomain.c b/drivers/scsi/fdomain.c
index fcf4cd5ef1ac..772bdc93930a 100644
--- a/drivers/scsi/fdomain.c
+++ b/drivers/scsi/fdomain.c
@@ -306,7 +306,7 @@ static void fdomain_work(struct work_struct *work)
status = inb(fd->base + REG_BSTAT);
if (status & BSTAT_REQ) {
- switch (status & 0x0e) {
+ switch (status & (BSTAT_MSG | BSTAT_CMD | BSTAT_IO)) {
case BSTAT_CMD: /* COMMAND OUT */
outb(cmd->cmnd[cmd->SCp.sent_command++],
fd->base + REG_SCSI_DATA);
@@ -331,7 +331,7 @@ static void fdomain_work(struct work_struct *work)
case BSTAT_MSG | BSTAT_CMD: /* MESSAGE OUT */
outb(MESSAGE_REJECT, fd->base + REG_SCSI_DATA);
break;
- case BSTAT_MSG | BSTAT_IO | BSTAT_CMD: /* MESSAGE IN */
+ case BSTAT_MSG | BSTAT_CMD | BSTAT_IO: /* MESSAGE IN */
cmd->SCp.Message = inb(fd->base + REG_SCSI_DATA);
if (!cmd->SCp.Message)
++done;