aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_scsih.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_scsih.c')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c38
1 files changed, 28 insertions, 10 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index 9a739e6f2712..9de474051507 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -3186,16 +3186,19 @@ static u8
3186_scsih_sas_control_complete(struct MPT2SAS_ADAPTER *ioc, u16 smid, 3186_scsih_sas_control_complete(struct MPT2SAS_ADAPTER *ioc, u16 smid,
3187 u8 msix_index, u32 reply) 3187 u8 msix_index, u32 reply)
3188{ 3188{
3189#ifdef CONFIG_SCSI_MPT2SAS_LOGGING
3190 Mpi2SasIoUnitControlReply_t *mpi_reply = 3189 Mpi2SasIoUnitControlReply_t *mpi_reply =
3191 mpt2sas_base_get_reply_virt_addr(ioc, reply); 3190 mpt2sas_base_get_reply_virt_addr(ioc, reply);
3192#endif 3191 if (likely(mpi_reply)) {
3193 dewtprintk(ioc, printk(MPT2SAS_INFO_FMT 3192 dewtprintk(ioc, printk(MPT2SAS_INFO_FMT
3194 "sc_complete:handle(0x%04x), (open) " 3193 "sc_complete:handle(0x%04x), (open) "
3195 "smid(%d), ioc_status(0x%04x), loginfo(0x%08x)\n", 3194 "smid(%d), ioc_status(0x%04x), loginfo(0x%08x)\n",
3196 ioc->name, le16_to_cpu(mpi_reply->DevHandle), smid, 3195 ioc->name, le16_to_cpu(mpi_reply->DevHandle), smid,
3197 le16_to_cpu(mpi_reply->IOCStatus), 3196 le16_to_cpu(mpi_reply->IOCStatus),
3198 le32_to_cpu(mpi_reply->IOCLogInfo))); 3197 le32_to_cpu(mpi_reply->IOCLogInfo)));
3198 } else {
3199 printk(MPT2SAS_ERR_FMT "mpi_reply not valid at %s:%d/%s()!\n",
3200 ioc->name, __FILE__, __LINE__, __func__);
3201 }
3199 return 1; 3202 return 1;
3200} 3203}
3201 3204
@@ -3274,7 +3277,11 @@ _scsih_tm_volume_tr_complete(struct MPT2SAS_ADAPTER *ioc, u16 smid,
3274 "progress!\n", __func__, ioc->name)); 3277 "progress!\n", __func__, ioc->name));
3275 return 1; 3278 return 1;
3276 } 3279 }
3277 3280 if (unlikely(!mpi_reply)) {
3281 printk(MPT2SAS_ERR_FMT "mpi_reply not valid at %s:%d/%s()!\n",
3282 ioc->name, __FILE__, __LINE__, __func__);
3283 return 1;
3284 }
3278 mpi_request_tm = mpt2sas_base_get_msg_frame(ioc, smid); 3285 mpi_request_tm = mpt2sas_base_get_msg_frame(ioc, smid);
3279 handle = le16_to_cpu(mpi_request_tm->DevHandle); 3286 handle = le16_to_cpu(mpi_request_tm->DevHandle);
3280 if (handle != le16_to_cpu(mpi_reply->DevHandle)) { 3287 if (handle != le16_to_cpu(mpi_reply->DevHandle)) {
@@ -3337,7 +3344,11 @@ _scsih_tm_tr_complete(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
3337 "operational\n", __func__, ioc->name)); 3344 "operational\n", __func__, ioc->name));
3338 return 1; 3345 return 1;
3339 } 3346 }
3340 3347 if (unlikely(!mpi_reply)) {
3348 printk(MPT2SAS_ERR_FMT "mpi_reply not valid at %s:%d/%s()!\n",
3349 ioc->name, __FILE__, __LINE__, __func__);
3350 return 1;
3351 }
3341 mpi_request_tm = mpt2sas_base_get_msg_frame(ioc, smid); 3352 mpi_request_tm = mpt2sas_base_get_msg_frame(ioc, smid);
3342 handle = le16_to_cpu(mpi_request_tm->DevHandle); 3353 handle = le16_to_cpu(mpi_request_tm->DevHandle);
3343 if (handle != le16_to_cpu(mpi_reply->DevHandle)) { 3354 if (handle != le16_to_cpu(mpi_reply->DevHandle)) {
@@ -7353,6 +7364,13 @@ mpt2sas_scsih_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index,
7353 return 1; 7364 return 1;
7354 7365
7355 mpi_reply = mpt2sas_base_get_reply_virt_addr(ioc, reply); 7366 mpi_reply = mpt2sas_base_get_reply_virt_addr(ioc, reply);
7367
7368 if (unlikely(!mpi_reply)) {
7369 printk(MPT2SAS_ERR_FMT "mpi_reply not valid at %s:%d/%s()!\n",
7370 ioc->name, __FILE__, __LINE__, __func__);
7371 return 1;
7372 }
7373
7356 event = le16_to_cpu(mpi_reply->Event); 7374 event = le16_to_cpu(mpi_reply->Event);
7357 7375
7358 switch (event) { 7376 switch (event) {