@@ -1065,25 +1065,37 @@ lpfc_nvme_io_cmd_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeIn,
1065
1065
nCmd -> rcv_rsplen = wcqe -> parameter ;
1066
1066
nCmd -> status = 0 ;
1067
1067
1068
+ /* Get the NVME cmd details for this unique error. */
1069
+ cp = (struct nvme_fc_cmd_iu * )nCmd -> cmdaddr ;
1070
+ ep = (struct nvme_fc_ersp_iu * )nCmd -> rspaddr ;
1071
+
1068
1072
/* Check if this is really an ERSP */
1069
1073
if (nCmd -> rcv_rsplen == LPFC_NVME_ERSP_LEN ) {
1070
1074
lpfc_ncmd -> status = IOSTAT_SUCCESS ;
1071
1075
lpfc_ncmd -> result = 0 ;
1072
1076
1073
1077
lpfc_printf_vlog (vport , KERN_INFO , LOG_NVME ,
1074
- "6084 NVME Completion ERSP: "
1075
- "xri %x placed x%x\n" ,
1076
- lpfc_ncmd -> cur_iocbq .sli4_xritag ,
1077
- wcqe -> total_data_placed );
1078
+ "6084 NVME FCP_ERR ERSP: "
1079
+ "xri %x placed x%x opcode x%x cmd_id "
1080
+ "x%x cqe_status x%x\n" ,
1081
+ lpfc_ncmd -> cur_iocbq .sli4_xritag ,
1082
+ wcqe -> total_data_placed ,
1083
+ cp -> sqe .common .opcode ,
1084
+ cp -> sqe .common .command_id ,
1085
+ ep -> cqe .status );
1078
1086
break ;
1079
1087
}
1080
1088
lpfc_printf_vlog (vport , KERN_ERR , LOG_TRACE_EVENT ,
1081
1089
"6081 NVME Completion Protocol Error: "
1082
1090
"xri %x status x%x result x%x "
1083
- "placed x%x\n" ,
1091
+ "placed x%x opcode x%x cmd_id x%x, "
1092
+ "cqe_status x%x\n" ,
1084
1093
lpfc_ncmd -> cur_iocbq .sli4_xritag ,
1085
1094
lpfc_ncmd -> status , lpfc_ncmd -> result ,
1086
- wcqe -> total_data_placed );
1095
+ wcqe -> total_data_placed ,
1096
+ cp -> sqe .common .opcode ,
1097
+ cp -> sqe .common .command_id ,
1098
+ ep -> cqe .status );
1087
1099
break ;
1088
1100
case IOSTAT_LOCAL_REJECT :
1089
1101
/* Let fall through to set command final state. */
@@ -1842,6 +1854,7 @@ lpfc_nvme_fcp_abort(struct nvme_fc_local_port *pnvme_lport,
1842
1854
struct lpfc_nvme_fcpreq_priv * freqpriv ;
1843
1855
unsigned long flags ;
1844
1856
int ret_val ;
1857
+ struct nvme_fc_cmd_iu * cp ;
1845
1858
1846
1859
/* Validate pointers. LLDD fault handling with transport does
1847
1860
* have timing races.
@@ -1965,10 +1978,16 @@ lpfc_nvme_fcp_abort(struct nvme_fc_local_port *pnvme_lport,
1965
1978
return ;
1966
1979
}
1967
1980
1981
+ /*
1982
+ * Get Command Id from cmd to plug into response. This
1983
+ * code is not needed in the next NVME Transport drop.
1984
+ */
1985
+ cp = (struct nvme_fc_cmd_iu * )lpfc_nbuf -> nvmeCmd -> cmdaddr ;
1968
1986
lpfc_printf_vlog (vport , KERN_INFO , LOG_NVME_ABTS ,
1969
1987
"6138 Transport Abort NVME Request Issued for "
1970
- "ox_id x%x\n" ,
1971
- nvmereq_wqe -> sli4_xritag );
1988
+ "ox_id x%x nvme opcode x%x nvme cmd_id x%x\n" ,
1989
+ nvmereq_wqe -> sli4_xritag , cp -> sqe .common .opcode ,
1990
+ cp -> sqe .common .command_id );
1972
1991
return ;
1973
1992
1974
1993
out_unlock :
0 commit comments