mirror of https://gitee.com/openkylin/linux.git
scsi: fdomain: use BSTAT_{MSG|CMD|IO} in fdomain_work()
Commit1697c6a64c
("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:1697c6a64c
("scsi: fdomain: Add register definitions") Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
a9651be7e4
commit
7a1c0b79db
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue