Re: [PATCH v8 0/7] Add pci_dev_for_each_resource() helper and update users

From: Andy Shevchenko
Date: Wed Apr 05 2023 - 04:28:48 EST


On Tue, Apr 04, 2023 at 11:11:01AM -0500, Bjorn Helgaas wrote:
> On Thu, Mar 30, 2023 at 07:24:27PM +0300, Andy Shevchenko wrote:
> > Provide two new helper macros to iterate over PCI device resources and
> > convert users.
> >
> > Looking at it, refactor existing pci_bus_for_each_resource() and convert
> > users accordingly.
> >
> > Note, the amount of lines grew due to the documentation update.
> >
> > Changelog v8:
> > - fixed issue with pci_bus_for_each_resource() macro (LKP)
> > - due to above added a new patch to document how it works
> > - moved the last patch to be #2 (Philippe)
> > - added tags (Philippe)
> >
> > Changelog v7:
> > - made both macros to share same name (Bjorn)
>
> I didn't actually request the same name for both; I would have had no
> idea how to even do that :)
>
> v6 had:
>
> pci_dev_for_each_resource_p(dev, res)
> pci_dev_for_each_resource(dev, res, i)
>
> and I suggested:
>
> pci_dev_for_each_resource(dev, res)
> pci_dev_for_each_resource_idx(dev, res, i)
>
> because that pattern is used elsewhere.

Ah, sorry I misinterpreted your suggestion (I thought that at the end of
the day you wanted the macro to be less intrusive, so we change less code,
that's why I interpreted it the way described in the Changelog).

> But you figured out how to do
> it, and having one name is even better, so thanks for that extra work!

You are welcome!

> > - split out the pci_resource_n() conversion (Bjorn)
> >
> > Changelog v6:
> > - dropped unused variable in PPC code (LKP)
> >
> > Changelog v5:
> > - renamed loop variable to minimize the clash (Keith)
> > - addressed smatch warning (Dan)
> > - addressed 0-day bot findings (LKP)
> >
> > Changelog v4:
> > - rebased on top of v6.3-rc1
> > - added tag (Krzysztof)
> >
> > Changelog v3:
> > - rebased on top of v2 by Mika, see above
> > - added tag to pcmcia patch (Dominik)
> >
> > Changelog v2:
> > - refactor to have two macros
> > - refactor existing pci_bus_for_each_resource() in the same way and
> > convert users
> >
> > Andy Shevchenko (6):
> > kernel.h: Split out COUNT_ARGS() and CONCATENATE()
> > PCI: Introduce pci_resource_n()
> > PCI: Document pci_bus_for_each_resource() to avoid confusion
> > PCI: Allow pci_bus_for_each_resource() to take less arguments
> > EISA: Convert to use less arguments in pci_bus_for_each_resource()
> > pcmcia: Convert to use less arguments in pci_bus_for_each_resource()

...

> Applied 2-7 to pci/resource for v6.4, thanks, I really like this!

Btw, can you actually drop patch 7, please?
After I have updated the documentation I have realised that why the first
chunk is invalid. It needs mode careful check and rework.

> I omitted
>
> [1/7] kernel.h: Split out COUNT_ARGS() and CONCATENATE()"
>
> only because it's not essential to this series and has only a trivial
> one-line impact on include/linux/pci.h.

I'm not sure I understood what exactly "essentiality" means to you, but
I included that because it makes the split which can be used later by
others and not including kernel.h in the header is the objective I want
to achieve. Without this patch the achievement is going to be deferred.
Yet, this, as you have noticed, allows to compile and use the macros in
the rest of the patches.

P.S. Thank you for the review and application of the rest!

--
With Best Regards,
Andy Shevchenko