[PATCH v2 1/3] drm/nouveau: fix error path in nvkm_gsp_fwsec_v2

Danilo Krummrich dakr at kernel.org
Sat Aug 9 11:26:19 UTC 2025


On 8/4/25 9:25 PM, Timur Tabi wrote:
> Function nvkm_gsp_fwsec_v2() sets 'ret' if the kmemdup() call fails, but
> it never uses or returns 'ret' after that point.  We always need to release
> the firmware regardless, so do that and then check for error.
> 
> Fixes: 176fdcbddfd2 ("drm/nouveau/gsp/r535: add support for booting GSP-RM")

As mentioned by Philipp, we should Cc stable for this one.

> Signed-off-by: Timur Tabi <ttabi at nvidia.com>
> ---
>   drivers/gpu/drm/nouveau/nvkm/subdev/gsp/fwsec.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/fwsec.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/fwsec.c
> index 52412965fac1..5b721bd9d799 100644
> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/fwsec.c
> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/fwsec.c
> @@ -209,11 +209,12 @@ nvkm_gsp_fwsec_v2(struct nvkm_gsp *gsp, const char *name,
>   	fw->boot_addr = bld->start_tag << 8;
>   	fw->boot_size = bld->code_size;
>   	fw->boot = kmemdup(bl->data + hdr->data_offset + bld->code_off, fw->boot_size, GFP_KERNEL);
> -	if (!fw->boot)
> -		ret = -ENOMEM;
>   
>   	nvkm_firmware_put(bl);
>   
> +	if (!fw->boot)
> +		return -ENOMEM;

Good catch! It's also good that you moved the return below the
nvkm_firmware_put() call.

But don't we also need to revert the preceding call to nvkm_falcon_fw_ctor()?

> +
>   	/* Patch in interface data. */
>   	return nvkm_gsp_fwsec_patch(gsp, fw, desc->InterfaceOffset, init_cmd);
>   }



More information about the Nouveau mailing list