Re: [PATCH 2/3] PCI/sysfs: Use __free() in reset_method_store()

From: Ilpo Järvinen
Date: Mon Oct 28 2024 - 14:02:20 EST


On Mon, 28 Oct 2024, Keith Busch wrote:

> On Mon, Oct 28, 2024 at 07:40:45PM +0200, Ilpo Järvinen wrote:
> > @@ -1430,7 +1431,7 @@ static ssize_t reset_method_store(struct device *dev,
> > const char *buf, size_t count)
> > {
> > struct pci_dev *pdev = to_pci_dev(dev);
> > - char *options, *tmp_options, *name;
> > + char *tmp_options, *name;
> > int m, n;
> > u8 reset_methods[PCI_NUM_RESET_METHODS] = { 0 };
> >
> > @@ -1445,7 +1446,7 @@ static ssize_t reset_method_store(struct device *dev,
> > return count;
> > }
> >
> > - options = kstrndup(buf, count, GFP_KERNEL);
> > + char *options __free(kfree) = kstrndup(buf, count, GFP_KERNEL);
>
> We should avoid mixing declarations with code. Please declare it with
> the cleanup attribute at the top like before, and just initialize it to
> NULL.

Hi,

I don't exactly disagree with you myself and would prefer to keep
declarations at top, but I think as done now is exactly what Bjorn wants
for the specific case where __free() is used. This was discussed earlier
on the list.

If I misunderstood the conclusion of the earlier cleanup related
discussion, can you please correct me Bjorn?

--
i.