Message ID | 20200520130812.GA177222@mwanda (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/amdgpu: off by on in amdgpu_device_attr_create_groups() error handling | expand |
[AMD Official Use Only - Internal Distribution Only]
thanks.
Reviewed-by: Kevin Wang <kevin1.wang@amd.com>
Best Regads,
Kevin
"off by on" or "off by one" ? M >-----Original Message----- >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of Dan >Carpenter >Sent: Wednesday, May 20, 2020 9:08 AM >To: Alex Deucher <alexander.deucher@amd.com>; Kevin Wang ><kevin1.wang@amd.com> >Cc: David Airlie <airlied@linux.ie>; kernel-janitors@vger.kernel.org; linux- >kernel@vger.kernel.org; amd-gfx@lists.freedesktop.org; Hawking Zhang ><Hawking.Zhang@amd.com>; Rui Huang <ray.huang@amd.com>; dri- >devel@lists.freedesktop.org; Evan Quan <evan.quan@amd.com>; Kenneth >Feng <kenneth.feng@amd.com>; Christian König ><christian.koenig@amd.com>; Yintian Tao <yttao@amd.com> >Subject: [PATCH v2] drm/amdgpu: off by on in >amdgpu_device_attr_create_groups() error handling > >This loop in the error handling code should start a "i - 1" and end at >"i == 0". Currently it starts a "i" and ends at "i == 1". The result >is that it removes one attribute that wasn't created yet, and leaks the >zeroeth attribute. > >Fixes: 4e01847c38f7 ("drm/amdgpu: optimize amdgpu device attribute code") >Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> >--- >v2: style change > > drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 3 +-- > 1 files changed, 1 insertions(+), 2 deletions(-) > >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c >index b75362bf0742..e809534fabd4 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c >@@ -1942,9 +1942,8 @@ static int amdgpu_device_attr_create_groups(struct >amdgpu_device *adev, > return 0; > > failed: >- for (; i > 0; i--) { >+ while (i--) > amdgpu_device_attr_remove(adev, &attrs[i]); >- } > > return ret; > } >_______________________________________________ >dri-devel mailing list >dri-devel@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c index b75362bf0742..e809534fabd4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c @@ -1942,9 +1942,8 @@ static int amdgpu_device_attr_create_groups(struct amdgpu_device *adev, return 0; failed: - for (; i > 0; i--) { + while (i--) amdgpu_device_attr_remove(adev, &attrs[i]); - } return ret; }
This loop in the error handling code should start a "i - 1" and end at "i == 0". Currently it starts a "i" and ends at "i == 1". The result is that it removes one attribute that wasn't created yet, and leaks the zeroeth attribute. Fixes: 4e01847c38f7 ("drm/amdgpu: optimize amdgpu device attribute code") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- v2: style change drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)