mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-17 19:36:51 +07:00
scsi: lpfc: Fix fcp_rsp_len checking on lun reset
Issuing a LUN reset was resulting in a command failure which then escalated to a host reset. The FCP-4 spec allows fcp_rsp_len field to specify the number of valid bytes of FCP_RSP_INFO, and the value could be 4 or 8. The driver is allowing only a value of 8, thus it failed the command. Revise the driver to allow 4 or 8. Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
657add4e5e
commit
996a02aeb9
@ -4798,7 +4798,12 @@ lpfc_check_fcp_rsp(struct lpfc_vport *vport, struct lpfc_io_buf *lpfc_cmd)
|
||||
rsp_info,
|
||||
rsp_len, rsp_info_code);
|
||||
|
||||
if ((fcprsp->rspStatus2&RSP_LEN_VALID) && (rsp_len == 8)) {
|
||||
/* If FCP_RSP_LEN_VALID bit is one, then the FCP_RSP_LEN
|
||||
* field specifies the number of valid bytes of FCP_RSP_INFO.
|
||||
* The FCP_RSP_LEN field shall be set to 0x04 or 0x08
|
||||
*/
|
||||
if ((fcprsp->rspStatus2 & RSP_LEN_VALID) &&
|
||||
((rsp_len == 8) || (rsp_len == 4))) {
|
||||
switch (rsp_info_code) {
|
||||
case RSP_NO_FAILURE:
|
||||
lpfc_printf_vlog(vport, KERN_INFO, LOG_FCP,
|
||||
|
Loading…
Reference in New Issue
Block a user