>-----Original Message----- >From: Dan Carpenter <dan.carpenter@xxxxxxxxxx> >Sent: Wednesday, May 20, 2020 11:26 AM >To: Alex Deucher <alexander.deucher@xxxxxxx>; Kevin Wang ><kevin1.wang@xxxxxxx>; Ruhl, Michael J <michael.j.ruhl@xxxxxxxxx> >Cc: Christian König <christian.koenig@xxxxxxx>; David Airlie ><airlied@xxxxxxxx>; Daniel Vetter <daniel@xxxxxxxx>; Evan Quan ><evan.quan@xxxxxxx>; Rui Huang <ray.huang@xxxxxxx>; Kenneth Feng ><kenneth.feng@xxxxxxx>; Yintian Tao <yttao@xxxxxxx>; Hawking Zhang ><Hawking.Zhang@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx; dri- >devel@xxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; kernel- >janitors@xxxxxxxxxxxxxxx >Subject: [PATCH v3] drm/amdgpu: off by one 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@xxxxxxxxxx> >--- >v2: style change >v3: Fix embarrassing typo in the subject 😊 Acked-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx> m > 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; > }