Dan Carpenter
2023-Nov-27  12:56 UTC
[Nouveau] [PATCH] nouveau/gsp/r535: remove a stray unlock in r535_gsp_rpc_send()
This unlock doesn't belong here and it leads to a double unlock in
the caller, r535_gsp_rpc_push().
Fixes: 176fdcbddfd2 ("drm/nouveau/gsp/r535: add support for booting
GSP-RM")
Signed-off-by: Dan Carpenter <dan.carpenter at linaro.org>
---
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c
b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c
index dc44f5c7833f..818e5c73b7a6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c
@@ -365,10 +365,8 @@ r535_gsp_rpc_send(struct nvkm_gsp *gsp, void *argv, bool
wait, u32 repc)
 	}
 
 	ret = r535_gsp_cmdq_push(gsp, rpc);
-	if (ret) {
-		mutex_unlock(&gsp->cmdq.mutex);
+	if (ret)
 		return ERR_PTR(ret);
-	}
 
 	if (wait) {
 		msg = r535_gsp_msg_recv(gsp, fn, repc);
-- 
2.42.0
Timur Tabi
2023-Nov-27  20:05 UTC
[Nouveau] [PATCH] nouveau/gsp/r535: remove a stray unlock in r535_gsp_rpc_send()
On Mon, 2023-11-27 at 15:56 +0300, Dan Carpenter wrote:> This unlock doesn't belong here and it leads to a double unlock in > the caller, r535_gsp_rpc_push(). > > Fixes: 176fdcbddfd2 ("drm/nouveau/gsp/r535: add support for booting GSP- > RM") > Signed-off-by: Dan Carpenter <dan.carpenter at linaro.org>Nice catch! Reviewed-by: Timur Tabi <ttabi at nvidia.com>
Danilo Krummrich
2023-Nov-29  02:09 UTC
[Nouveau] [PATCH] nouveau/gsp/r535: remove a stray unlock in r535_gsp_rpc_send()
On 11/27/23 13:56, Dan Carpenter wrote:> This unlock doesn't belong here and it leads to a double unlock in > the caller, r535_gsp_rpc_push(). > > Fixes: 176fdcbddfd2 ("drm/nouveau/gsp/r535: add support for booting GSP-RM") > Signed-off-by: Dan Carpenter <dan.carpenter at linaro.org>Good catch - applied to drm-misc-fixes. - Danilo> --- > drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c > index dc44f5c7833f..818e5c73b7a6 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c > @@ -365,10 +365,8 @@ r535_gsp_rpc_send(struct nvkm_gsp *gsp, void *argv, bool wait, u32 repc) > } > > ret = r535_gsp_cmdq_push(gsp, rpc); > - if (ret) { > - mutex_unlock(&gsp->cmdq.mutex); > + if (ret) > return ERR_PTR(ret); > - } > > if (wait) { > msg = r535_gsp_msg_recv(gsp, fn, repc);