On Wed, Jun 17, 2026 at 4:55 AM Lijo Lazar <[email protected]> wrote: > > Fix the indexing issue. Release the kobject whose init/add failed, and > unwind the successfully added ones. > > Signed-off-by: Lijo Lazar <[email protected]>
Reviewed-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c > index 14cef0264c17..d0d494e00cfe 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c > @@ -904,7 +904,7 @@ static void amdgpu_xcp_cfg_sysfs_init(struct > amdgpu_device *adev) > { > struct amdgpu_xcp_res_details *xcp_res; > struct amdgpu_xcp_cfg *xcp_cfg; > - int i, r, j, rid, mode; > + int i, r, rid, mode; > > if (!adev->xcp_mgr) > return; > @@ -950,14 +950,16 @@ static void amdgpu_xcp_cfg_sysfs_init(struct > amdgpu_device *adev) > &xcp_cfg_res_sysfs_ktype, > &xcp_cfg->kobj, "%s", > xcp_res_names[rid]); > - if (r) > + if (r) { > + kobject_put(&xcp_res->kobj); > goto err; > + } > } > > adev->xcp_mgr->xcp_cfg = xcp_cfg; > return; > err: > - for (j = 0; j < i; j++) { > + while (i--) { > xcp_res = &xcp_cfg->xcp_res[i]; > kobject_put(&xcp_res->kobj); > } > -- > 2.49.0 >
