]> git.itanic.dy.fi Git - linux-stable/commitdiff
nouveau/gsp/r535: Fix a NULL vs error pointer bug
authorDan Carpenter <dan.carpenter@linaro.org>
Wed, 8 Nov 2023 07:40:21 +0000 (10:40 +0300)
committerDanilo Krummrich <dakr@redhat.com>
Tue, 14 Nov 2023 21:40:25 +0000 (22:40 +0100)
The r535_gsp_cmdq_get() function returns error pointers but this code
checks for NULL.  Also we need to propagate the error pointer back to
the callers in r535_gsp_rpc_get().  Returning NULL will lead to a NULL
pointer dereference.

Fixes: 176fdcbddfd2 ("drm/nouveau/gsp/r535: add support for booting GSP-RM")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Danilo Krummrich <dakr@redhat.com>
Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/f71996d9-d1cb-45ea-a4b2-2dfc21312d8c@kili.mountain
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c

index afa8e7377a76dc2f5e505f85376b145c5c2a6725..dc44f5c7833f60c165d5c01a0b2afd03e3e45294 100644 (file)
@@ -689,8 +689,8 @@ r535_gsp_rpc_get(struct nvkm_gsp *gsp, u32 fn, u32 argc)
        struct nvfw_gsp_rpc *rpc;
 
        rpc = r535_gsp_cmdq_get(gsp, ALIGN(sizeof(*rpc) + argc, sizeof(u64)));
-       if (!rpc)
-               return NULL;
+       if (IS_ERR(rpc))
+               return ERR_CAST(rpc);
 
        rpc->header_version = 0x03000000;
        rpc->signature = ('C' << 24) | ('P' << 16) | ('R' << 8) | 'V';