Use devm_add_action_or_reset() to release resources in case of failure,
because the cleanup function will be automatically called.

Reviewed-by: Rodrigo Vivi <[email protected]>
Signed-off-by: He Lugang <[email protected]>
---
v2:move devm_add_action_or_reset after sysfs_create_files to avoid removing
the sysfs files that hadn't been created.
---
 drivers/gpu/drm/xe/xe_gt_freq.c  | 4 ++--
 drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_freq.c b/drivers/gpu/drm/xe/xe_gt_freq.c
index 68a5778b4319..ab76973f3e1e 100644
--- a/drivers/gpu/drm/xe/xe_gt_freq.c
+++ b/drivers/gpu/drm/xe/xe_gt_freq.c
@@ -237,11 +237,11 @@ int xe_gt_freq_init(struct xe_gt *gt)
        if (!gt->freq)
                return -ENOMEM;
 
-       err = devm_add_action(xe->drm.dev, freq_fini, gt->freq);
+       err = sysfs_create_files(gt->freq, freq_attrs);
        if (err)
                return err;
 
-       err = sysfs_create_files(gt->freq, freq_attrs);
+       err = devm_add_action_or_reset(xe->drm.dev, freq_fini, gt->freq);
        if (err)
                return err;
 
diff --git a/drivers/gpu/drm/xe/xe_gt_sysfs.c b/drivers/gpu/drm/xe/xe_gt_sysfs.c
index a05c3699e8b9..ec2b8246204b 100644
--- a/drivers/gpu/drm/xe/xe_gt_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sysfs.c
@@ -51,5 +51,5 @@ int xe_gt_sysfs_init(struct xe_gt *gt)
 
        gt->sysfs = &kg->base;
 
-       return devm_add_action(xe->drm.dev, gt_sysfs_fini, gt);
+       return devm_add_action_or_reset(xe->drm.dev, gt_sysfs_fini, gt);
 }
-- 
2.45.2

Reply via email to