That's a good find, but I'd rather functions have no side effects. I'll follow up with a patch which correctly fixes this. Regards, Luben On 2021-07-02 3:52 p.m., trix@xxxxxxxxxx wrote: > From: Tom Rix <trix@xxxxxxxxxx> > > Static analysis reports this problem > amdgpu_ras.c:2324:2: warning: 2nd function call argument is an > uninitialized value > atomic_set(&con->ras_ce_count, ce_count); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > ce_count is normally set by the earlier call to > amdgpu_ras_query_error_count(). But amdgpu_ras_query_error_count() > can return early without setting, leaving its error count parameters > in a garbage state. > > Initialize the error count parameters earlier. > > Fixes: a46751fbcde5 ("drm/amdgpu: Fix RAS function interface") > Signed-off-by: Tom Rix <trix@xxxxxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > index 875874ea745ec..c80fa545aa2b8 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > @@ -1056,6 +1056,12 @@ void amdgpu_ras_query_error_count(struct amdgpu_device *adev, > struct ras_manager *obj; > unsigned long ce, ue; > > + if (ce_count) > + *ce_count = 0; > + > + if (ue_count) > + *ue_count = 0; > + > if (!adev->ras_enabled || !con) > return; >