ibmvscsi: Non SCSI error status fixup
Subsystems (3)
PATCH 1/1 ibmvscsi: Non SCSI error status fixup
Some versions of the Virtual I/O Server on Power return 0x99 in the non-SCSI error status field as success, rather than 0. This fixes the ibmvscsi driver to treat this response as success.
---
linux-2.6-bjking1/drivers/scsi/ibmvscsi/ibmvscsi.c | 2 +- linux-2.6-bjking1/drivers/scsi/ibmvscsi/viosrp.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-)
drivers/scsi/ibmvscsi/viosrp.h renamed from drivers/scsi/ibmvscsi/viosrp.h~ibmvscsi_non_scsi_status_workaround +2 -1
@@ -65,7 +65,8 @@ enum viosrp_crq_status {VIOSRP_VIOLATES_MAX_XFER =0x2 ,VIOSRP_PARTNER_PANIC =0x3 ,VIOSRP_DEVICE_BUSY =0x8 , -VIOSRP_ADAPTER_FAIL =0x10 +VIOSRP_ADAPTER_FAIL =0x10 , + VIOSRP_OK2 = 0x99, }; struct viosrp_crq {
drivers/scsi/ibmvscsi/ibmvscsi.c renamed from drivers/scsi/ibmvscsi/ibmvscsi.c~ibmvscsi_non_scsi_status_workaround +1 -1
@@ -1348,7 +1348,7 @@ void ibmvscsi_handle_crq(struct viosrp_cdel_timer (&evt_struct->timer); -if (crq->status !=VIOSRP_OK && evt_struct->cmnd) +if ((crq->status !=VIOSRP_OK && crq->status !=VIOSRP_OK2 ) && evt_struct->cmnd) evt_struct->cmnd->result =DID_ERROR <<16 ;if (evt_struct->done) evt_struct->done (evt_struct);
_
PATCH 1/1 ibmvscsi: Non SCSI error status fixup
Quoted 5 lines · Brian King
Some versions of the Virtual I/O Server on Power return
0x99in the non-SCSI error status field as success, rather than 0. This fixes the ibmvscsi driver to treat this response as success.
Yeah....0x99...that's an intuitive value for success.
Dave B
Quoted 8 lines · Dave Boutcher
Quoted 5 lines · Brian King
Some versions of the Virtual I/O Server on Power return
0x99in the non-SCSI error status field as success, rather than 0. This fixes the ibmvscsi driver to treat this response as success.Yeah....0x99...that's an intuitive value for success.
Hopefully there are no versions that return 0x99 for an error? :)
cheers
Signature · 8 lines
Michael Ellerman OzLabs, IBM Australia Development Lab wwweb: http://michael.ellerman.id.au phone: +61 2 6212 1183 (tie line 70 21183) We do not inherit the earth from our ancestors, we borrow it from our children. - S.M.A.R.T Person
Quoted 9 lines · Michael Ellerman
Quoted 6 lines · Dave Boutcher
Quoted 4 lines · Brian King
Some versions of the Virtual I/O Server on Power return
0x99in the non-SCSI error status field as success, rather than 0. This fixes the ibmvscsi driver to treat this response as success.Yeah....0x99...that's an intuitive value for success.
Hopefully there are no versions that return
0x99for an error? :)
There shouldn't be. 0x99 is actually not defined as a valid value for that field, but it is what the ibmvscsis VIOS that is included in SLES 9 and SLES 10 return on success, due to a bug in that driver. We plan to fix the ibmvscsis driver as well, but it will take a while for that fix to propagate. Until very recently, the status field was not checked, which is why we are only recently running into this problem.
-Brian
Signature · 3 lines
Brian King Linux on Power Virtualization IBM Linux Technology Center