]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/nouveau: fix error path in nvkm_gsp_fwsec_v2
authorTimur Tabi <ttabi@nvidia.com>
Wed, 13 Aug 2025 00:10:02 +0000 (19:10 -0500)
committerDanilo Krummrich <dakr@kernel.org>
Mon, 25 Aug 2025 16:09:29 +0000 (18:09 +0200)
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")
Cc: stable@vger.kernel.org # v6.7+
Signed-off-by: Timur Tabi <ttabi@nvidia.com>
Link: https://lore.kernel.org/r/20250813001004.2986092-1-ttabi@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/fwsec.c

index 52412965fac107e63f389b6c1938a59d65896084..5b721bd9d79949bac40c25ac45988c217cac1c89 100644 (file)
@@ -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;
+
        /* Patch in interface data. */
        return nvkm_gsp_fwsec_patch(gsp, fw, desc->InterfaceOffset, init_cmd);
 }