diff options
Diffstat (limited to 'drivers/scsi/mpt3sas/mpt3sas_base.c')
| -rw-r--r-- | drivers/scsi/mpt3sas/mpt3sas_base.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index e57774472e75..1d8c584ec1e9 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c | |||
| @@ -3281,12 +3281,18 @@ mpt3sas_base_free_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid) | |||
| 3281 | 3281 | ||
| 3282 | if (smid < ioc->hi_priority_smid) { | 3282 | if (smid < ioc->hi_priority_smid) { |
| 3283 | struct scsiio_tracker *st; | 3283 | struct scsiio_tracker *st; |
| 3284 | void *request; | ||
| 3284 | 3285 | ||
| 3285 | st = _get_st_from_smid(ioc, smid); | 3286 | st = _get_st_from_smid(ioc, smid); |
| 3286 | if (!st) { | 3287 | if (!st) { |
| 3287 | _base_recovery_check(ioc); | 3288 | _base_recovery_check(ioc); |
| 3288 | return; | 3289 | return; |
| 3289 | } | 3290 | } |
| 3291 | |||
| 3292 | /* Clear MPI request frame */ | ||
| 3293 | request = mpt3sas_base_get_msg_frame(ioc, smid); | ||
| 3294 | memset(request, 0, ioc->request_sz); | ||
| 3295 | |||
| 3290 | mpt3sas_base_clear_st(ioc, st); | 3296 | mpt3sas_base_clear_st(ioc, st); |
| 3291 | _base_recovery_check(ioc); | 3297 | _base_recovery_check(ioc); |
| 3292 | return; | 3298 | return; |
