Message ID | 20210603152803.717505-1-yangyingliang@huawei.com |
---|---|
State | New |
Headers | show |
Series | [-next] scsi: mpi3mr: Fix missing unlock on error | expand |
> Goto unlock path before return from function > in the error handling case. > > Fixes: c9566231cfaf ("scsi: mpi3mr: Create operational request and reply queue pair") > Reported-by: Hulk Robot <hulkci@huawei.com> > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > --- > drivers/scsi/mpi3mr/mpi3mr_fw.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c > index dbf116414855..8aea1c2ae712 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c > +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c > @@ -1583,7 +1583,7 @@ static int mpi3mr_create_op_reply_q(struct mpi3mr_ioc *mrioc, u16 qidx) > if (mrioc->init_cmds.state & MPI3MR_CMD_PENDING) { > retval = -1; > ioc_err(mrioc, "CreateRepQ: Init command is in use\n"); > - goto out; > + goto out_unlock; > } > mrioc->init_cmds.state = MPI3MR_CMD_PENDING; > mrioc->init_cmds.is_waiting = 1; > @@ -1692,7 +1692,7 @@ static int mpi3mr_create_op_req_q(struct mpi3mr_ioc *mrioc, u16 idx, > if (mrioc->init_cmds.state & MPI3MR_CMD_PENDING) { > retval = -1; > ioc_err(mrioc, "CreateReqQ: Init command is in use\n"); > - goto out; > + goto out_unlock; > } > mrioc->init_cmds.state = MPI3MR_CMD_PENDING; > mrioc->init_cmds.is_waiting = 1; Acked-by: Kashyap Desai <kashyap.desai@broadcom.com> > -- > 2.25.1 >
Yang, > Goto unlock path before return from function in the error handling > case. Applied to 5.14/scsi-staging, thanks! -- Martin K. Petersen Oracle Linux Engineering
diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c index dbf116414855..8aea1c2ae712 100644 --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c @@ -1583,7 +1583,7 @@ static int mpi3mr_create_op_reply_q(struct mpi3mr_ioc *mrioc, u16 qidx) if (mrioc->init_cmds.state & MPI3MR_CMD_PENDING) { retval = -1; ioc_err(mrioc, "CreateRepQ: Init command is in use\n"); - goto out; + goto out_unlock; } mrioc->init_cmds.state = MPI3MR_CMD_PENDING; mrioc->init_cmds.is_waiting = 1; @@ -1692,7 +1692,7 @@ static int mpi3mr_create_op_req_q(struct mpi3mr_ioc *mrioc, u16 idx, if (mrioc->init_cmds.state & MPI3MR_CMD_PENDING) { retval = -1; ioc_err(mrioc, "CreateReqQ: Init command is in use\n"); - goto out; + goto out_unlock; } mrioc->init_cmds.state = MPI3MR_CMD_PENDING; mrioc->init_cmds.is_waiting = 1;
Goto unlock path before return from function in the error handling case. Fixes: c9566231cfaf ("scsi: mpi3mr: Create operational request and reply queue pair") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- drivers/scsi/mpi3mr/mpi3mr_fw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)