| From 91b7bdb2c0089cbbb817df6888ab1458c645184e Mon Sep 17 00:00:00 2001 |
| From: Bart Van Assche <bart.vanassche@wdc.com> |
| Date: Fri, 15 Jun 2018 14:41:58 -0700 |
| Subject: scsi: mpt3sas: Fix _transport_smp_handler() error path |
| |
| From: Bart Van Assche <bart.vanassche@wdc.com> |
| |
| commit 91b7bdb2c0089cbbb817df6888ab1458c645184e upstream. |
| |
| This patch avoids that smatch complains about a double unlock on |
| ioc->transport_cmds.mutex. |
| |
| Fixes: 651a01364994 ("scsi: scsi_transport_sas: switch to bsg-lib for SMP passthrough") |
| Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> |
| Cc: Christoph Hellwig <hch@lst.de> |
| Cc: Sathya Prakash <sathya.prakash@broadcom.com> |
| Cc: Chaitra P B <chaitra.basappa@broadcom.com> |
| Cc: Suganath Prabu Subramani <suganath-prabu.subramani@broadcom.com> |
| Cc: stable@vger.kernel.org |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/scsi/mpt3sas/mpt3sas_transport.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/scsi/mpt3sas/mpt3sas_transport.c |
| +++ b/drivers/scsi/mpt3sas/mpt3sas_transport.c |
| @@ -1936,12 +1936,12 @@ _transport_smp_handler(struct bsg_job *j |
| pr_info(MPT3SAS_FMT "%s: host reset in progress!\n", |
| __func__, ioc->name); |
| rc = -EFAULT; |
| - goto out; |
| + goto job_done; |
| } |
| |
| rc = mutex_lock_interruptible(&ioc->transport_cmds.mutex); |
| if (rc) |
| - goto out; |
| + goto job_done; |
| |
| if (ioc->transport_cmds.status != MPT3_CMD_NOT_USED) { |
| pr_err(MPT3SAS_FMT "%s: transport_cmds in use\n", ioc->name, |
| @@ -2066,6 +2066,7 @@ _transport_smp_handler(struct bsg_job *j |
| out: |
| ioc->transport_cmds.status = MPT3_CMD_NOT_USED; |
| mutex_unlock(&ioc->transport_cmds.mutex); |
| +job_done: |
| bsg_job_done(job, rc, reslen); |
| } |
| |