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@redhat.com wrote:
From: Tom Rix trix@redhat.com
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@redhat.com
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;