浏览代码

[SCSI] mpt2sas : running out of message frames

The driver is not freeing message frame when returning failure from
_ctl_do_task_abort.   If you call this function 500 times when its unable
to find an active task mid, you end up with no message frames.

Signed-off-by: Eric Moore <eric.moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Eric Moore 16 年之前
父节点
当前提交
77bdd9ee1e
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/scsi/mpt2sas/mpt2sas_ctl.c

+ 3 - 1
drivers/scsi/mpt2sas/mpt2sas_ctl.c

@@ -714,8 +714,10 @@ _ctl_do_mpt_command(struct MPT2SAS_ADAPTER *ioc,
 
 		if (tm_request->TaskType ==
 		    MPI2_SCSITASKMGMT_TASKTYPE_ABORT_TASK) {
-			if (_ctl_do_task_abort(ioc, &karg, tm_request))
+			if (_ctl_do_task_abort(ioc, &karg, tm_request)) {
+				mpt2sas_base_free_smid(ioc, smid);
 				goto out;
+			}
 		}
 
 		mutex_lock(&ioc->tm_cmds.mutex);