Message ID | BE0644D06348D90D+20240907065439.1661032-1-helugang@uniontech.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] drm/xe: use devm_add_action_or_reset() helper | expand |
On Sat, Sep 07, 2024 at 02:54:39PM +0800, He Lugang wrote: > Use devm_add_action_or_reset() to release resources in case of failure, > because the cleanup function will be automatically called. > > Signed-off-by: He Lugang <helugang@uniontech.com> > --- > drivers/gpu/drm/xe/xe_gt_freq.c | 2 +- > drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/xe/xe_gt_freq.c b/drivers/gpu/drm/xe/xe_gt_freq.c > index 68a5778b4319..71bcd60d0866 100644 > --- a/drivers/gpu/drm/xe/xe_gt_freq.c > +++ b/drivers/gpu/drm/xe/xe_gt_freq.c > @@ -237,7 +237,7 @@ 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 = devm_add_action_or_reset(xe->drm.dev, freq_fini, gt->freq); you need to move this to a lower point then... otherwise fini function will try to remove the sysfs files that hadn't been created. > 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); this one looks right indeed. > } > -- > 2.45.2 >
在 2024/9/11 02:57, Rodrigo Vivi 写道: > On Sat, Sep 07, 2024 at 02:54:39PM +0800, He Lugang wrote: >> Use devm_add_action_or_reset() to release resources in case of failure, >> because the cleanup function will be automatically called. >> >> Signed-off-by: He Lugang <helugang@uniontech.com> >> --- >> drivers/gpu/drm/xe/xe_gt_freq.c | 2 +- >> drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +- >> 2 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/xe/xe_gt_freq.c b/drivers/gpu/drm/xe/xe_gt_freq.c >> index 68a5778b4319..71bcd60d0866 100644 >> --- a/drivers/gpu/drm/xe/xe_gt_freq.c >> +++ b/drivers/gpu/drm/xe/xe_gt_freq.c >> @@ -237,7 +237,7 @@ 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 = devm_add_action_or_reset(xe->drm.dev, freq_fini, gt->freq); > > you need to move this to a lower point then... > otherwise fini function will try to remove the sysfs files that > hadn't been created. OK,thanks for your reply! > >> 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); > > this one looks right indeed. > >> } >> -- >> 2.45.2 >> >
diff --git a/drivers/gpu/drm/xe/xe_gt_freq.c b/drivers/gpu/drm/xe/xe_gt_freq.c index 68a5778b4319..71bcd60d0866 100644 --- a/drivers/gpu/drm/xe/xe_gt_freq.c +++ b/drivers/gpu/drm/xe/xe_gt_freq.c @@ -237,7 +237,7 @@ 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 = 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); }
Use devm_add_action_or_reset() to release resources in case of failure, because the cleanup function will be automatically called. Signed-off-by: He Lugang <helugang@uniontech.com> --- drivers/gpu/drm/xe/xe_gt_freq.c | 2 +- drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)