Message ID | 20231017082905.1673316-1-michal.wilczynski@intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | f7e2910fcec1fb2f78888e33ee994653fc29fb15 |
Delegated to: | Ira Weiny |
Headers | show |
Series | [v3] ACPI: NFIT: Use cleanup.h helpers instead of devm_*() | expand |
Michal Wilczynski wrote: > The new cleanup.h facilities that arrived in v6.5-rc1 can replace the > the usage of devm semantics in acpi_nfit_init_interleave_set(). That > routine appears to only be using devm to avoid goto statements. The > new __free() annotation at variable declaration time can achieve the same > effect more efficiently. > > There is no end user visible side effects of this patch, I was > motivated to send this cleanup to practice using the new helpers. > > Suggested-by: Dave Jiang <dave.jiang@intel.com> > Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com> > Reviewed-by: Dave Jiang <dave.jiang@intel.com> > Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> > Signed-off-by: Michal Wilczynski <michal.wilczynski@intel.com> > --- > > Dan, would you like me to give you credit for the changelog changes > with Co-developed-by tag ? Nope, this looks good to me, thanks for fixing it up. Reviewed-by: Dan Williams <dan.j.williams@intel.com>
On Wed, Oct 18, 2023 at 6:28 AM Dan Williams <dan.j.williams@intel.com> wrote: > > Michal Wilczynski wrote: > > The new cleanup.h facilities that arrived in v6.5-rc1 can replace the > > the usage of devm semantics in acpi_nfit_init_interleave_set(). That > > routine appears to only be using devm to avoid goto statements. The > > new __free() annotation at variable declaration time can achieve the same > > effect more efficiently. > > > > There is no end user visible side effects of this patch, I was > > motivated to send this cleanup to practice using the new helpers. > > > > Suggested-by: Dave Jiang <dave.jiang@intel.com> > > Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com> > > Reviewed-by: Dave Jiang <dave.jiang@intel.com> > > Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> > > Signed-off-by: Michal Wilczynski <michal.wilczynski@intel.com> > > --- > > > > Dan, would you like me to give you credit for the changelog changes > > with Co-developed-by tag ? > > Nope, this looks good to me, thanks for fixing it up. > > Reviewed-by: Dan Williams <dan.j.williams@intel.com> Are you going to apply it too, or should I take it?
Rafael J. Wysocki wrote: > On Wed, Oct 18, 2023 at 6:28 AM Dan Williams <dan.j.williams@intel.com> wrote: > > > > Michal Wilczynski wrote: > > > The new cleanup.h facilities that arrived in v6.5-rc1 can replace the > > > the usage of devm semantics in acpi_nfit_init_interleave_set(). That > > > routine appears to only be using devm to avoid goto statements. The > > > new __free() annotation at variable declaration time can achieve the same > > > effect more efficiently. > > > > > > There is no end user visible side effects of this patch, I was > > > motivated to send this cleanup to practice using the new helpers. > > > > > > Suggested-by: Dave Jiang <dave.jiang@intel.com> > > > Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com> > > > Reviewed-by: Dave Jiang <dave.jiang@intel.com> > > > Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> > > > Signed-off-by: Michal Wilczynski <michal.wilczynski@intel.com> > > > --- > > > > > > Dan, would you like me to give you credit for the changelog changes > > > with Co-developed-by tag ? > > > > Nope, this looks good to me, thanks for fixing it up. > > > > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > > Are you going to apply it too, or should I take it? I'm prepping the nvdimm tree for 6.8. I will take it. Ira
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c index 3826f49d481b..67a844a705c4 100644 --- a/drivers/acpi/nfit/core.c +++ b/drivers/acpi/nfit/core.c @@ -2257,26 +2257,23 @@ static int acpi_nfit_init_interleave_set(struct acpi_nfit_desc *acpi_desc, struct nd_region_desc *ndr_desc, struct acpi_nfit_system_address *spa) { + u16 nr = ndr_desc->num_mappings; + struct nfit_set_info2 *info2 __free(kfree) = + kcalloc(nr, sizeof(*info2), GFP_KERNEL); + struct nfit_set_info *info __free(kfree) = + kcalloc(nr, sizeof(*info), GFP_KERNEL); struct device *dev = acpi_desc->dev; struct nd_interleave_set *nd_set; - u16 nr = ndr_desc->num_mappings; - struct nfit_set_info2 *info2; - struct nfit_set_info *info; int i; + if (!info || !info2) + return -ENOMEM; + nd_set = devm_kzalloc(dev, sizeof(*nd_set), GFP_KERNEL); if (!nd_set) return -ENOMEM; import_guid(&nd_set->type_guid, spa->range_guid); - info = devm_kcalloc(dev, nr, sizeof(*info), GFP_KERNEL); - if (!info) - return -ENOMEM; - - info2 = devm_kcalloc(dev, nr, sizeof(*info2), GFP_KERNEL); - if (!info2) - return -ENOMEM; - for (i = 0; i < nr; i++) { struct nd_mapping_desc *mapping = &ndr_desc->mapping[i]; struct nvdimm *nvdimm = mapping->nvdimm; @@ -2337,8 +2334,6 @@ static int acpi_nfit_init_interleave_set(struct acpi_nfit_desc *acpi_desc, } ndr_desc->nd_set = nd_set; - devm_kfree(dev, info); - devm_kfree(dev, info2); return 0; }