On Thu, Feb 18, 2021 at 10:06 PM Dave Airlie airlied@gmail.com wrote:
Let me know if there are any issues,
gcc was happy, and I obviously already pushed out my merge, but then when I did my clang build afterwards, it reports:
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu_cmn.c:764:2: warning: variable 'structure_size' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized] default: ^~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu_cmn.c:770:23: note: uninitialized use occurs here memset(header, 0xFF, structure_size); ^~~~~~~~~~~~~~
and clang is very very right. That "default" case is completely broken, and will generate a randomly sized memset. Not good.
Presumably that default case never happens, but if so it shouldn't exist.
Perhaps better yet, make the "default" case just do a "return" instead of a break. Breaking out of the switch statement to code that cannot possibly work is all kinds of mindless.
Kevin/Alex? This was introduced by commit de4b7cd8cb87 ("drm/amd/pm/swsmu: unify the init soft gpu metrics function")
Linus