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.
Changelog v7:
- made both macros to share same name (Bjorn)
- 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 (5):
kernel.h: Split out COUNT_ARGS() and CONCATENATE()
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()
PCI: Make use of pci_resource_n()
Mika Westerberg (1):
PCI: Introduce pci_dev_for_each_resource()
.clang-format | 1 +
arch/alpha/kernel/pci.c | 5 +--
arch/arm/kernel/bios32.c | 16 ++++----
arch/arm/mach-dove/pcie.c | 10 ++---
arch/arm/mach-mv78xx0/pcie.c | 10 ++---
arch/arm/mach-orion5x/pci.c | 10 ++---
arch/mips/pci/ops-bcm63xx.c | 8 ++--
arch/mips/pci/pci-legacy.c | 3 +-
arch/powerpc/kernel/pci-common.c | 21 +++++-----
arch/powerpc/platforms/4xx/pci.c | 8 ++--
arch/powerpc/platforms/52xx/mpc52xx_pci.c | 5 +--
arch/powerpc/platforms/pseries/pci.c | 16 ++++----
arch/sh/drivers/pci/pcie-sh7786.c | 10 ++---
arch/sparc/kernel/leon_pci.c | 5 +--
arch/sparc/kernel/pci.c | 10 ++---
arch/sparc/kernel/pcic.c | 5 +--
drivers/eisa/pci_eisa.c | 4 +-
drivers/pci/bus.c | 7 ++--
drivers/pci/hotplug/shpchp_sysfs.c | 8 ++--
drivers/pci/pci.c | 3 +-
drivers/pci/probe.c | 2 +-
drivers/pci/remove.c | 5 +--
drivers/pci/setup-bus.c | 37 +++++++-----------
drivers/pci/setup-res.c | 4 +-
drivers/pci/vgaarb.c | 17 +++-----
drivers/pci/xen-pcifront.c | 4 +-
drivers/pcmcia/rsrc_nonstatic.c | 9 ++---
drivers/pcmcia/yenta_socket.c | 3 +-
drivers/pnp/quirks.c | 29 +++++---------
include/linux/args.h | 13 +++++++
include/linux/kernel.h | 8 +---
include/linux/pci.h | 47 +++++++++++++++++------
32 files changed, 165 insertions(+), 178 deletions(-)
create mode 100644 include/linux/args.h
--
2.40.0.1.gaa8946217a0b
The pci_bus_for_each_resource() can hide the iterator loop since
it may be not used otherwise. With this, we may drop that iterator
variable definition.
Signed-off-by: Andy Shevchenko <[email protected]>
Reviewed-by: Krzysztof Wilczyński <[email protected]>
---
drivers/eisa/pci_eisa.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
index 930c2332c3c4..8173e60bb808 100644
--- a/drivers/eisa/pci_eisa.c
+++ b/drivers/eisa/pci_eisa.c
@@ -20,8 +20,8 @@ static struct eisa_root_device pci_eisa_root;
static int __init pci_eisa_init(struct pci_dev *pdev)
{
- int rc, i;
struct resource *res, *bus_res = NULL;
+ int rc;
if ((rc = pci_enable_device (pdev))) {
dev_err(&pdev->dev, "Could not enable device\n");
@@ -38,7 +38,7 @@ static int __init pci_eisa_init(struct pci_dev *pdev)
* eisa_root_register() can only deal with a single io port resource,
* so we use the first valid io port resource.
*/
- pci_bus_for_each_resource(pdev->bus, res, i)
+ pci_bus_for_each_resource(pdev->bus, res)
if (res && (res->flags & IORESOURCE_IO)) {
bus_res = res;
break;
--
2.40.0.1.gaa8946217a0b
The pci_bus_for_each_resource() can hide the iterator loop since
it may be not used otherwise. With this, we may drop that iterator
variable definition.
Signed-off-by: Andy Shevchenko <[email protected]>
Reviewed-by: Krzysztof Wilczyński <[email protected]>
Acked-by: Dominik Brodowski <[email protected]>
---
drivers/pcmcia/rsrc_nonstatic.c | 9 +++------
drivers/pcmcia/yenta_socket.c | 3 +--
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index ad1141fddb4c..96264ebee46a 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -934,7 +934,7 @@ static int adjust_io(struct pcmcia_socket *s, unsigned int action, unsigned long
static int nonstatic_autoadd_resources(struct pcmcia_socket *s)
{
struct resource *res;
- int i, done = 0;
+ int done = 0;
if (!s->cb_dev || !s->cb_dev->bus)
return -ENODEV;
@@ -960,12 +960,9 @@ static int nonstatic_autoadd_resources(struct pcmcia_socket *s)
*/
if (s->cb_dev->bus->number == 0)
return -EINVAL;
-
- for (i = 0; i < PCI_BRIDGE_RESOURCE_NUM; i++) {
- res = s->cb_dev->bus->resource[i];
-#else
- pci_bus_for_each_resource(s->cb_dev->bus, res, i) {
#endif
+
+ pci_bus_for_each_resource(s->cb_dev->bus, res) {
if (!res)
continue;
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index 1365eaa20ff4..fd18ab571ce8 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -673,9 +673,8 @@ static int yenta_search_res(struct yenta_socket *socket, struct resource *res,
u32 min)
{
struct resource *root;
- int i;
- pci_bus_for_each_resource(socket->dev->bus, root, i) {
+ pci_bus_for_each_resource(socket->dev->bus, root) {
if (!root)
continue;
--
2.40.0.1.gaa8946217a0b
On 23/3/23 18:36, Andy Shevchenko wrote:
> The pci_bus_for_each_resource() can hide the iterator loop since
> it may be not used otherwise. With this, we may drop that iterator
> variable definition.
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> Reviewed-by: Krzysztof Wilczyński <[email protected]>
> ---
> drivers/eisa/pci_eisa.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
Since this is *PCI* EISA, could be squashed into previous patch.
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
On Fri, Mar 24, 2023 at 10:02:15AM +0100, Philippe Mathieu-Daudé wrote:
> On 23/3/23 18:36, Andy Shevchenko wrote:
> > The pci_bus_for_each_resource() can hide the iterator loop since
> > it may be not used otherwise. With this, we may drop that iterator
> > variable definition.
> >
> > Signed-off-by: Andy Shevchenko <[email protected]>
> > Reviewed-by: Krzysztof Wilczyński <[email protected]>
> > ---
> > drivers/eisa/pci_eisa.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
>
> Since this is *PCI* EISA, could be squashed into previous patch.
I believe it would be better to have them separated.
But if maintainers want to squash, I can do that.
> Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Thank you!
--
With Best Regards,
Andy Shevchenko