diff options
Diffstat (limited to 'drivers/scsi/mpt3sas/mpt3sas_base.c')
| -rw-r--r-- | drivers/scsi/mpt3sas/mpt3sas_base.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index e57774472e75..f60b9e0a6ca6 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)  	if (smid < ioc->hi_priority_smid) {  		struct scsiio_tracker *st; +		void *request;  		st = _get_st_from_smid(ioc, smid);  		if (!st) {  			_base_recovery_check(ioc);  			return;  		} + +		/* Clear MPI request frame */ +		request = mpt3sas_base_get_msg_frame(ioc, smid); +		memset(request, 0, ioc->request_sz); +  		mpt3sas_base_clear_st(ioc, st);  		_base_recovery_check(ioc);  		return; @@ -3327,7 +3333,6 @@ _base_mpi_ep_writeq(__u64 b, volatile void __iomem *addr,  	spin_lock_irqsave(writeq_lock, flags);  	__raw_writel((u32)(b), addr);  	__raw_writel((u32)(b >> 32), (addr + 4)); -	mmiowb();  	spin_unlock_irqrestore(writeq_lock, flags);  }  | 
