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.