drm/nouveau/bios: set info only when the return is not 0
Subsystems (3)
PATCH 1/1 drm/nouveau/bios: set info only when the return is not 0
clang static analysis reportsdrivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c:68:17: warning: The right operand of '*' is a garbage value [core.UndefinedBinaryOperatorResult]
switch (!!data * *ver) {
^ ~~~~A switch statement with only a default should be reduced to an if.
If nvbios_pmuEp() returns 0, via the data variable, the output info parameter is not used. So set info only when data is not 0.
The struct nvbios_pmuE only has the type and data elements. Since both of these are explicitly set, memset is not needed. So remove it.
--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c +1 -4
@@ -64,12 +64,9 @@ nvbios_pmuEp(struct nvkm_bios *bios, int idx, u8 *ver, u8 *hdr, struct nvbios_pmuE *info) {u32 data =nvbios_pmuEe (bios, idx, ver, hdr); -memset (info,0x00 ,sizeof (*info)); -switch (!!data * *ver) { -default : +if (data) { info->type =nvbios_rd08 (bios, data +0x00 ); info->data =nvbios_rd32 (bios, data +0x02 ); -break ; }return data; }
Signature · 1 line
2.27.0
Currently on flakey internet in the back of a car, so I probably won't be able to push this until I get back tonight or early tomorrow
Quoted 40 lines · Tom Rix
clang static analysis reports
drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c:68:17: warning: The right operand of '*' is a garbage value [core.UndefinedBinaryOperatorResult] switch (!!data * *ver) {
^ ~~~~
A switch statement with only a default should be reduced to an if.If
nvbios_pmuEp()returns 0, via the data variable, the output info parameter
is not used. So set info only when data is not 0.The struct
nvbios_pmuEonly has the type and data elements. Since both of these
are explicitly set, memset is not needed. So remove it.Signed-off-by Tom Rix <[email protected]>---
drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c | 5 +----1 file changed, 1 insertion(+), 4 deletions(-)drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c +1
-4@@ -64,12 +64,9 @@ nvbios_pmuEp(struct nvkm_bios *bios, int idx, u8 *ver, u8 *hdr, struct nvbios_pmuE *info) { u32 data = nvbios_pmuEe(bios, idx, ver, hdr); - memset(info, 0x00, sizeof(*info)); - switch (!!data * *ver) { - default: + if (data) { info->type = nvbios_rd08(bios, data + 0x00); info->data = nvbios_rd32(bios, data + 0x02); - break; } return data;}
Signature · 3 lines
Cheers, Lyude Paul (she/her) Software Engineer at Red Hat
Lyude Paul
maintainerQuoted 5 lines · Lyude Paul
Reviewed-by Lyude Paul <[email protected]>Currently on flakey internet in the back of a car, so I probably won't be able
to push this until I get back tonight or early tomorrow
Whoops! Slipped my mind when I got back, but I just remembered it now so I will go ahead and push :). apologies for the delay!
Quoted 44 lines · Tom Rix
Quoted 41 lines
clang static analysis reports
drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c:68:17: warning: The right operand of '*' is a garbage value [core.UndefinedBinaryOperatorResult] switch (!!data * *ver) {
^ ~~~~
A switch statement with only a default should be reduced to an if.If
nvbios_pmuEp()returns 0, via the data variable, the output info parameter
is not used. So set info only when data is not 0.The struct
nvbios_pmuEonly has the type and data elements. Since both of these
are explicitly set, memset is not needed. So remove it.Signed-off-by Tom Rix <[email protected]>---
drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c | 5 +----1 file changed, 1 insertion(+), 4 deletions(-)drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c +0
-0@@ -64,12 +64,9 @@ nvbios_pmuEp(struct nvkm_bios *bios, int idx, u8 *ver,u8
*hdr,
structnvbios_pmuE*info)
{
u32 data =nvbios_pmuEe(bios, idx, ver, hdr); - memset(info,0x00,sizeof(*info));
- switch (!!data * *ver) {
- default:
+ if (data) {
info->type =nvbios_rd08(bios, data + 0x00);info->data=nvbios_rd32(bios, data + 0x02); - break;
}
return data;
}
Signature · 3 lines
Cheers, Lyude Paul (she/her) Software Engineer at Red Hat
Quoted 8 lines · Lyude Paul
Quoted 5 lines · Lyude Paul
Reviewed-by Lyude Paul <[email protected]>Currently on flakey internet in the back of a car, so I probably won't be able
to push this until I get back tonight or early tomorrowWhoops! Slipped my mind when I got back, but I just remembered it now so I will go ahead and push :). apologies for the delay!
Thanks!
T
Quoted 43 lines
Quoted 43 lines · Tom Rix
Quoted 41 lines
clang static analysis reports
drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c:68:17: warning: The right operand of '*' is a garbage value [core.UndefinedBinaryOperatorResult]
switch (!!data * *ver) {
^ ~~~~
A switch statement with only a default should be reduced to an if.If
nvbios_pmuEp()returns 0, via the data variable, the output info parameter
is not used. So set info only when data is not 0.The struct
nvbios_pmuEonly has the type and data elements. Since both of these
are explicitly set, memset is not needed. So remove it.Signed-off-by Tom Rix <[email protected]>--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c +0
-0@@ -64,12 +64,9 @@ nvbios_pmuEp(struct nvkm_bios *bios, int idx, u8 *ver,u8
*hdr,
structnvbios_pmuE*info)
{
u32 data =nvbios_pmuEe(bios, idx, ver, hdr);
- memset(info,0x00,sizeof(*info));
- switch (!!data * *ver) {
- default:
+ if (data) {
info->type =nvbios_rd08(bios, data + 0x00);info->data=nvbios_rd32(bios, data + 0x02);
- break;
}
return data;
}