diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-05-15 13:15:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-05-15 13:15:48 -0400 |
commit | eeba2dfa6a0d1cf40056e3a00ec21206c640eeca (patch) | |
tree | d88bc13cb9889b72cee67346d03adac7dff7745c | |
parent | ee4b65c2e820161455d1ae1ccf7a219397f32ae6 (diff) | |
parent | 7d3af7d96af7b9f51e1ef67b6f4725f545737da2 (diff) |
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley:
"Two small driver fixes: aacraid to fix an unknown IU type on task
management functions which causes a firmware fault and vmw_pvscsi to
change a return code to retry the operation instead of causing an
immediate error"
* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: aacraid: Correct hba_send to include iu_type
scsi: vmw-pvscsi: return DID_BUS_BUSY for adapter-initated aborts
-rw-r--r-- | drivers/scsi/aacraid/commsup.c | 8 | ||||
-rw-r--r-- | drivers/scsi/vmw_pvscsi.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c index 0156c9623c35..d62ddd63f4fe 100644 --- a/drivers/scsi/aacraid/commsup.c +++ b/drivers/scsi/aacraid/commsup.c | |||
@@ -724,6 +724,8 @@ int aac_hba_send(u8 command, struct fib *fibptr, fib_callback callback, | |||
724 | int wait; | 724 | int wait; |
725 | unsigned long flags = 0; | 725 | unsigned long flags = 0; |
726 | unsigned long mflags = 0; | 726 | unsigned long mflags = 0; |
727 | struct aac_hba_cmd_req *hbacmd = (struct aac_hba_cmd_req *) | ||
728 | fibptr->hw_fib_va; | ||
727 | 729 | ||
728 | fibptr->flags = (FIB_CONTEXT_FLAG | FIB_CONTEXT_FLAG_NATIVE_HBA); | 730 | fibptr->flags = (FIB_CONTEXT_FLAG | FIB_CONTEXT_FLAG_NATIVE_HBA); |
729 | if (callback) { | 731 | if (callback) { |
@@ -734,11 +736,9 @@ int aac_hba_send(u8 command, struct fib *fibptr, fib_callback callback, | |||
734 | wait = 1; | 736 | wait = 1; |
735 | 737 | ||
736 | 738 | ||
737 | if (command == HBA_IU_TYPE_SCSI_CMD_REQ) { | 739 | hbacmd->iu_type = command; |
738 | struct aac_hba_cmd_req *hbacmd = | ||
739 | (struct aac_hba_cmd_req *)fibptr->hw_fib_va; | ||
740 | 740 | ||
741 | hbacmd->iu_type = command; | 741 | if (command == HBA_IU_TYPE_SCSI_CMD_REQ) { |
742 | /* bit1 of request_id must be 0 */ | 742 | /* bit1 of request_id must be 0 */ |
743 | hbacmd->request_id = | 743 | hbacmd->request_id = |
744 | cpu_to_le32((((u32)(fibptr - dev->fibs)) << 2) + 1); | 744 | cpu_to_le32((((u32)(fibptr - dev->fibs)) << 2) + 1); |
diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c index c374e3b5c678..777e5f1e52d1 100644 --- a/drivers/scsi/vmw_pvscsi.c +++ b/drivers/scsi/vmw_pvscsi.c | |||
@@ -609,7 +609,7 @@ static void pvscsi_complete_request(struct pvscsi_adapter *adapter, | |||
609 | break; | 609 | break; |
610 | 610 | ||
611 | case BTSTAT_ABORTQUEUE: | 611 | case BTSTAT_ABORTQUEUE: |
612 | cmd->result = (DID_ABORT << 16); | 612 | cmd->result = (DID_BUS_BUSY << 16); |
613 | break; | 613 | break; |
614 | 614 | ||
615 | case BTSTAT_SCSIPARITY: | 615 | case BTSTAT_SCSIPARITY: |