drm/nouveau/bios/power_budget: Move an expression into a macro call parameter in...
authorMarkus Elfring <Markus.Elfring@web.de>
Sat, 15 Apr 2023 20:30:30 +0000 (22:30 +0200)
committerKarol Herbst <kherbst@redhat.com>
Mon, 17 Apr 2023 17:08:03 +0000 (19:08 +0200)
The address of a data structure member was determined before
a corresponding null pointer check in the implementation of
the function “nvbios_power_budget_header”.

Thus avoid the risk for undefined behaviour by moving the usage
of an expression into a parameter for a macro call in one if branch.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/529fe82e-59f0-71a2-1e33-b051f833b67c@web.de
drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c

index 03d2f97..2ba992b 100644 (file)
@@ -59,7 +59,6 @@ int
 nvbios_power_budget_header(struct nvkm_bios *bios,
                            struct nvbios_power_budget *budget)
 {
-       struct nvkm_subdev *subdev = &bios->subdev;
        u8 ver, hdr, cnt, len, cap_entry;
        u32 header;
 
@@ -82,7 +81,7 @@ nvbios_power_budget_header(struct nvkm_bios *bios,
        }
 
        if (cap_entry >= cnt && cap_entry != 0xff) {
-               nvkm_warn(subdev,
+               nvkm_warn(&bios->subdev,
                          "invalid cap_entry in power budget table found\n");
                budget->cap_entry = 0xff;
                return -EINVAL;