2022-10-25 19:00:00

by Bjorn Helgaas

[permalink] [raw]
Subject: [PATCH v2 0/4] PCI: Remove unnecessary <linux/of_irq.h> includes

From: Bjorn Helgaas <[email protected]>

Many host controller drivers #include <linux/of_irq.h> even though they
don't need it. Remove the unnecessary #includes.

v1: https://lore.kernel.org/all/[email protected]/

Changes from v1 to v2:
- Include <linux/irqdomain.h> explicitly in altera-msi and microchip,
which don't need <linux/of_irq.h> itself, but relied on it to include
<linux/irqdomain.h>
- Include <linux/irqdomain.h> explicitly in mvebu, which needs both it
and <linux/of_irq.h>

Bjorn Helgaas (4):
PCI: altera-msi: Include <linux/irqdomain.h> explicitly
PCI: microchip: Include <linux/irqdomain.h> explicitly
PCI: mvebu: Include <linux/irqdomain.h> explicitly
PCI: Remove unnecessary <linux/of_irq.h> includes

drivers/pci/controller/cadence/pci-j721e.c | 1 -
drivers/pci/controller/dwc/pci-layerscape.c | 1 -
drivers/pci/controller/dwc/pcie-armada8k.c | 1 -
drivers/pci/controller/dwc/pcie-tegra194.c | 1 -
drivers/pci/controller/pci-mvebu.c | 1 +
drivers/pci/controller/pci-v3-semi.c | 1 -
drivers/pci/controller/pci-xgene-msi.c | 1 -
drivers/pci/controller/pci-xgene.c | 1 -
drivers/pci/controller/pcie-altera-msi.c | 2 +-
drivers/pci/controller/pcie-iproc-platform.c | 1 -
drivers/pci/controller/pcie-iproc.c | 1 -
drivers/pci/controller/pcie-microchip-host.c | 2 +-
drivers/pci/controller/pcie-rockchip-host.c | 1 -
drivers/pci/controller/pcie-xilinx-cpm.c | 1 -
drivers/pci/controller/pcie-xilinx-nwl.c | 1 -
15 files changed, 3 insertions(+), 14 deletions(-)

--
2.25.1



2022-10-25 19:01:35

by Bjorn Helgaas

[permalink] [raw]
Subject: [PATCH v2 2/4] PCI: microchip: Include <linux/irqdomain.h> explicitly

From: Bjorn Helgaas <[email protected]>

pcie-microchip-host.c uses irq_domain_add_linear() and related interfaces,
so it needs <linux/irqdomain.h> but doesn't include it directly; it relies
on the fact that <linux/of_irq.h> includes it.

But pcie-microchip-host.c *doesn't* need <linux/of_irq.h> itself. Include
<linux/irqdomain.h> directly to remove this implicit dependency so a future
patch can drop <linux/of_irq.h>.

Signed-off-by: Bjorn Helgaas <[email protected]>
---
drivers/pci/controller/pcie-microchip-host.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pci/controller/pcie-microchip-host.c b/drivers/pci/controller/pcie-microchip-host.c
index 7263d175b5ad..57b2a62f52c8 100644
--- a/drivers/pci/controller/pcie-microchip-host.c
+++ b/drivers/pci/controller/pcie-microchip-host.c
@@ -9,6 +9,7 @@

#include <linux/clk.h>
#include <linux/irqchip/chained_irq.h>
+#include <linux/irqdomain.h>
#include <linux/module.h>
#include <linux/msi.h>
#include <linux/of_address.h>
--
2.25.1


2022-10-25 19:02:34

by Bjorn Helgaas

[permalink] [raw]
Subject: [PATCH v2 4/4] PCI: Remove unnecessary <linux/of_irq.h> includes

From: Bjorn Helgaas <[email protected]>

Many host controller drivers #include <linux/of_irq.h> even though they
don't need it. Remove the unnecessary #includes.

Signed-off-by: Bjorn Helgaas <[email protected]>
---
drivers/pci/controller/cadence/pci-j721e.c | 1 -
drivers/pci/controller/dwc/pci-layerscape.c | 1 -
drivers/pci/controller/dwc/pcie-armada8k.c | 1 -
drivers/pci/controller/dwc/pcie-tegra194.c | 1 -
drivers/pci/controller/pci-v3-semi.c | 1 -
drivers/pci/controller/pci-xgene-msi.c | 1 -
drivers/pci/controller/pci-xgene.c | 1 -
drivers/pci/controller/pcie-altera-msi.c | 1 -
drivers/pci/controller/pcie-iproc-platform.c | 1 -
drivers/pci/controller/pcie-iproc.c | 1 -
drivers/pci/controller/pcie-microchip-host.c | 1 -
drivers/pci/controller/pcie-rockchip-host.c | 1 -
drivers/pci/controller/pcie-xilinx-cpm.c | 1 -
drivers/pci/controller/pcie-xilinx-nwl.c | 1 -
14 files changed, 14 deletions(-)

diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
index a82f845cc4b5..cc83a8925ce0 100644
--- a/drivers/pci/controller/cadence/pci-j721e.c
+++ b/drivers/pci/controller/cadence/pci-j721e.c
@@ -15,7 +15,6 @@
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/of_device.h>
-#include <linux/of_irq.h>
#include <linux/pci.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
diff --git a/drivers/pci/controller/dwc/pci-layerscape.c b/drivers/pci/controller/dwc/pci-layerscape.c
index 879b8692f96a..ed5fb492fe08 100644
--- a/drivers/pci/controller/dwc/pci-layerscape.c
+++ b/drivers/pci/controller/dwc/pci-layerscape.c
@@ -13,7 +13,6 @@
#include <linux/init.h>
#include <linux/of_pci.h>
#include <linux/of_platform.h>
-#include <linux/of_irq.h>
#include <linux/of_address.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
diff --git a/drivers/pci/controller/dwc/pcie-armada8k.c b/drivers/pci/controller/dwc/pcie-armada8k.c
index dc469ef8e99b..5c999e15c357 100644
--- a/drivers/pci/controller/dwc/pcie-armada8k.c
+++ b/drivers/pci/controller/dwc/pcie-armada8k.c
@@ -21,7 +21,6 @@
#include <linux/platform_device.h>
#include <linux/resource.h>
#include <linux/of_pci.h>
-#include <linux/of_irq.h>

#include "pcie-designware.h"

diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index 1b6b437823d2..02d78a12b6e7 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -21,7 +21,6 @@
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_gpio.h>
-#include <linux/of_irq.h>
#include <linux/of_pci.h>
#include <linux/pci.h>
#include <linux/phy/phy.h>
diff --git a/drivers/pci/controller/pci-v3-semi.c b/drivers/pci/controller/pci-v3-semi.c
index 154a5398633c..784fcf35599c 100644
--- a/drivers/pci/controller/pci-v3-semi.c
+++ b/drivers/pci/controller/pci-v3-semi.c
@@ -22,7 +22,6 @@
#include <linux/kernel.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
-#include <linux/of_irq.h>
#include <linux/of_pci.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
diff --git a/drivers/pci/controller/pci-xgene-msi.c b/drivers/pci/controller/pci-xgene-msi.c
index bfa259781b69..5efc6e56559f 100644
--- a/drivers/pci/controller/pci-xgene-msi.c
+++ b/drivers/pci/controller/pci-xgene-msi.c
@@ -10,7 +10,6 @@
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/msi.h>
-#include <linux/of_irq.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c
index 549d3bd6d1c2..887b4941ff32 100644
--- a/drivers/pci/controller/pci-xgene.c
+++ b/drivers/pci/controller/pci-xgene.c
@@ -14,7 +14,6 @@
#include <linux/init.h>
#include <linux/of.h>
#include <linux/of_address.h>
-#include <linux/of_irq.h>
#include <linux/of_pci.h>
#include <linux/pci.h>
#include <linux/pci-acpi.h>
diff --git a/drivers/pci/controller/pcie-altera-msi.c b/drivers/pci/controller/pcie-altera-msi.c
index 4366e042e98b..65e8a20cc442 100644
--- a/drivers/pci/controller/pcie-altera-msi.c
+++ b/drivers/pci/controller/pcie-altera-msi.c
@@ -14,7 +14,6 @@
#include <linux/module.h>
#include <linux/msi.h>
#include <linux/of_address.h>
-#include <linux/of_irq.h>
#include <linux/of_pci.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
diff --git a/drivers/pci/controller/pcie-iproc-platform.c b/drivers/pci/controller/pcie-iproc-platform.c
index 538115246c79..4142a73e611d 100644
--- a/drivers/pci/controller/pcie-iproc-platform.c
+++ b/drivers/pci/controller/pcie-iproc-platform.c
@@ -12,7 +12,6 @@
#include <linux/platform_device.h>
#include <linux/of_address.h>
#include <linux/of_pci.h>
-#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/phy/phy.h>

diff --git a/drivers/pci/controller/pcie-iproc.c b/drivers/pci/controller/pcie-iproc.c
index 2519201b0e51..83029bdfd884 100644
--- a/drivers/pci/controller/pcie-iproc.c
+++ b/drivers/pci/controller/pcie-iproc.c
@@ -18,7 +18,6 @@
#include <linux/platform_device.h>
#include <linux/of_address.h>
#include <linux/of_pci.h>
-#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/phy/phy.h>

diff --git a/drivers/pci/controller/pcie-microchip-host.c b/drivers/pci/controller/pcie-microchip-host.c
index 57b2a62f52c8..0ebf7015e9af 100644
--- a/drivers/pci/controller/pcie-microchip-host.c
+++ b/drivers/pci/controller/pcie-microchip-host.c
@@ -13,7 +13,6 @@
#include <linux/module.h>
#include <linux/msi.h>
#include <linux/of_address.h>
-#include <linux/of_irq.h>
#include <linux/of_pci.h>
#include <linux/pci-ecam.h>
#include <linux/platform_device.h>
diff --git a/drivers/pci/controller/pcie-rockchip-host.c b/drivers/pci/controller/pcie-rockchip-host.c
index 7352b5ff8d35..c96c0f454570 100644
--- a/drivers/pci/controller/pcie-rockchip-host.c
+++ b/drivers/pci/controller/pcie-rockchip-host.c
@@ -28,7 +28,6 @@
#include <linux/of_device.h>
#include <linux/of_pci.h>
#include <linux/of_platform.h>
-#include <linux/of_irq.h>
#include <linux/pci.h>
#include <linux/pci_ids.h>
#include <linux/phy/phy.h>
diff --git a/drivers/pci/controller/pcie-xilinx-cpm.c b/drivers/pci/controller/pcie-xilinx-cpm.c
index e4ab48041eb6..4a787a941674 100644
--- a/drivers/pci/controller/pcie-xilinx-cpm.c
+++ b/drivers/pci/controller/pcie-xilinx-cpm.c
@@ -16,7 +16,6 @@
#include <linux/of_address.h>
#include <linux/of_pci.h>
#include <linux/of_platform.h>
-#include <linux/of_irq.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/pci-ecam.h>
diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c
index 40d070e54ad2..f0271b6c6f8d 100644
--- a/drivers/pci/controller/pcie-xilinx-nwl.c
+++ b/drivers/pci/controller/pcie-xilinx-nwl.c
@@ -17,7 +17,6 @@
#include <linux/of_address.h>
#include <linux/of_pci.h>
#include <linux/of_platform.h>
-#include <linux/of_irq.h>
#include <linux/pci.h>
#include <linux/pci-ecam.h>
#include <linux/platform_device.h>
--
2.25.1


2022-10-25 19:16:15

by Bjorn Helgaas

[permalink] [raw]
Subject: [PATCH v2 3/4] PCI: mvebu: Include <linux/irqdomain.h> explicitly

From: Bjorn Helgaas <[email protected]>

pci-mvebu.c uses irq_domain_add_linear() and related interfaces but relies
on <linux/irqdomain.h> but doesn't include it directly; it relies on the
fact that <linux/of_irq.h> includes it.

Include <linux/irqdomain.h> directly to remove this implicit dependency.

Signed-off-by: Bjorn Helgaas <[email protected]>
---
drivers/pci/controller/pci-mvebu.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c
index 1ced73726a26..73db99035c2b 100644
--- a/drivers/pci/controller/pci-mvebu.c
+++ b/drivers/pci/controller/pci-mvebu.c
@@ -13,6 +13,7 @@
#include <linux/delay.h>
#include <linux/gpio.h>
#include <linux/init.h>
+#include <linux/irqdomain.h>
#include <linux/mbus.h>
#include <linux/slab.h>
#include <linux/platform_device.h>
--
2.25.1


2022-10-25 19:16:31

by Bjorn Helgaas

[permalink] [raw]
Subject: [PATCH v2 1/4] PCI: altera-msi: Include <linux/irqdomain.h> explicitly

From: Bjorn Helgaas <[email protected]>

pcie-altera-msi.c uses irq_domain_add_linear() and related interfaces, so
it needs <linux/irqdomain.h> but doesn't include it directly; it relies on
the fact that <linux/of_irq.h> includes it.

But pcie-altera-msi.c *doesn't* need <linux/of_irq.h> itself. Include
<linux/irqdomain.h> directly to remove this implicit dependency so a future
patch can drop <linux/of_irq.h>.

Signed-off-by: Bjorn Helgaas <[email protected]>
---
drivers/pci/controller/pcie-altera-msi.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pci/controller/pcie-altera-msi.c b/drivers/pci/controller/pcie-altera-msi.c
index 7b1d3ebc34ec..4366e042e98b 100644
--- a/drivers/pci/controller/pcie-altera-msi.c
+++ b/drivers/pci/controller/pcie-altera-msi.c
@@ -9,6 +9,7 @@

#include <linux/interrupt.h>
#include <linux/irqchip/chained_irq.h>
+#include <linux/irqdomain.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/msi.h>
--
2.25.1


2022-10-25 20:13:43

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v2 0/4] PCI: Remove unnecessary <linux/of_irq.h> includes

On Tue, Oct 25, 2022 at 01:51:43PM -0500, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <[email protected]>
>
> Many host controller drivers #include <linux/of_irq.h> even though they
> don't need it. Remove the unnecessary #includes.
>
> v1: https://lore.kernel.org/all/[email protected]/
>
> Changes from v1 to v2:
> - Include <linux/irqdomain.h> explicitly in altera-msi and microchip,
> which don't need <linux/of_irq.h> itself, but relied on it to include
> <linux/irqdomain.h>
> - Include <linux/irqdomain.h> explicitly in mvebu, which needs both it
> and <linux/of_irq.h>
>
> Bjorn Helgaas (4):
> PCI: altera-msi: Include <linux/irqdomain.h> explicitly
> PCI: microchip: Include <linux/irqdomain.h> explicitly
> PCI: mvebu: Include <linux/irqdomain.h> explicitly
> PCI: Remove unnecessary <linux/of_irq.h> includes

> drivers/pci/controller/pcie-microchip-host.c | 2 +-

Hey Bjorn, actually did the build this time rather than visually
inspecting... For the microchip bits:
Reviewed-by: Conor Dooley <[email protected]>
Thanks!


2022-10-25 21:36:18

by Thomas Petazzoni

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] PCI: mvebu: Include <linux/irqdomain.h> explicitly

On Tue, 25 Oct 2022 13:51:46 -0500
Bjorn Helgaas <[email protected]> wrote:

> From: Bjorn Helgaas <[email protected]>
>
> pci-mvebu.c uses irq_domain_add_linear() and related interfaces but relies
> on <linux/irqdomain.h> but doesn't include it directly; it relies on the
> fact that <linux/of_irq.h> includes it.
>
> Include <linux/irqdomain.h> directly to remove this implicit dependency.
>
> Signed-off-by: Bjorn Helgaas <[email protected]>
> ---
> drivers/pci/controller/pci-mvebu.c | 1 +
> 1 file changed, 1 insertion(+)

Acked-by: Thomas Petazzoni <[email protected]>

Thanks!

Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

2022-10-31 09:10:47

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] PCI: Remove unnecessary <linux/of_irq.h> includes

Hi Bjorn,

I love your patch! Yet something to improve:

[auto build test ERROR on helgaas-pci/next]
[also build test ERROR on xilinx-xlnx/master rockchip/for-next linus/master v6.1-rc3 next-20221028]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Bjorn-Helgaas/PCI-Remove-unnecessary-linux-of_irq-h-includes/20221026-025433
base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
patch link: https://lore.kernel.org/r/20221025185147.665365-5-helgaas%40kernel.org
patch subject: [PATCH v2 4/4] PCI: Remove unnecessary <linux/of_irq.h> includes
config: parisc-allyesconfig
compiler: hppa-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/3a556c42aa50a1375b3eaf12713a3dec8969f6bd
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Bjorn-Helgaas/PCI-Remove-unnecessary-linux-of_irq-h-includes/20221026-025433
git checkout 3a556c42aa50a1375b3eaf12713a3dec8969f6bd
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=parisc SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

drivers/pci/controller/pci-xgene-msi.c: In function 'xgene_irq_domain_alloc':
>> drivers/pci/controller/pci-xgene-msi.c:196:39: error: invalid use of undefined type 'struct irq_domain'
196 | struct xgene_msi *msi = domain->host_data;
| ^~
>> drivers/pci/controller/pci-xgene-msi.c:213:9: error: implicit declaration of function 'irq_domain_set_info' [-Werror=implicit-function-declaration]
213 | irq_domain_set_info(domain, virq, msi_irq,
| ^~~~~~~~~~~~~~~~~~~
drivers/pci/controller/pci-xgene-msi.c:214:63: error: invalid use of undefined type 'struct irq_domain'
214 | &xgene_msi_bottom_irq_chip, domain->host_data,
| ^~
drivers/pci/controller/pci-xgene-msi.c: In function 'xgene_irq_domain_free':
>> drivers/pci/controller/pci-xgene-msi.c:223:30: error: implicit declaration of function 'irq_domain_get_irq_data'; did you mean 'irq_desc_get_irq_data'? [-Werror=implicit-function-declaration]
223 | struct irq_data *d = irq_domain_get_irq_data(domain, virq);
| ^~~~~~~~~~~~~~~~~~~~~~~
| irq_desc_get_irq_data
drivers/pci/controller/pci-xgene-msi.c:223:30: warning: initialization of 'struct irq_data *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
>> drivers/pci/controller/pci-xgene-msi.c:234:9: error: implicit declaration of function 'irq_domain_free_irqs_parent' [-Werror=implicit-function-declaration]
234 | irq_domain_free_irqs_parent(domain, virq, nr_irqs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/pci-xgene-msi.c: At top level:
>> drivers/pci/controller/pci-xgene-msi.c:237:21: error: variable 'msi_domain_ops' has initializer but incomplete type
237 | static const struct irq_domain_ops msi_domain_ops = {
| ^~~~~~~~~~~~~~
>> drivers/pci/controller/pci-xgene-msi.c:238:10: error: 'const struct irq_domain_ops' has no member named 'alloc'
238 | .alloc = xgene_irq_domain_alloc,
| ^~~~~
drivers/pci/controller/pci-xgene-msi.c:238:19: warning: excess elements in struct initializer
238 | .alloc = xgene_irq_domain_alloc,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/pci-xgene-msi.c:238:19: note: (near initialization for 'msi_domain_ops')
>> drivers/pci/controller/pci-xgene-msi.c:239:10: error: 'const struct irq_domain_ops' has no member named 'free'
239 | .free = xgene_irq_domain_free,
| ^~~~
drivers/pci/controller/pci-xgene-msi.c:239:19: warning: excess elements in struct initializer
239 | .free = xgene_irq_domain_free,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/pci-xgene-msi.c:239:19: note: (near initialization for 'msi_domain_ops')
drivers/pci/controller/pci-xgene-msi.c: In function 'xgene_allocate_domains':
>> drivers/pci/controller/pci-xgene-msi.c:244:29: error: implicit declaration of function 'irq_domain_add_linear' [-Werror=implicit-function-declaration]
244 | msi->inner_domain = irq_domain_add_linear(NULL, NR_MSI_VEC,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/pci-xgene-msi.c:244:27: warning: assignment to 'struct irq_domain *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
244 | msi->inner_domain = irq_domain_add_linear(NULL, NR_MSI_VEC,
| ^
>> drivers/pci/controller/pci-xgene-msi.c:249:53: error: implicit declaration of function 'of_node_to_fwnode' [-Werror=implicit-function-declaration]
249 | msi->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(msi->node),
| ^~~~~~~~~~~~~~~~~
drivers/pci/controller/pci-xgene-msi.c:249:53: warning: passing argument 1 of 'pci_msi_create_irq_domain' makes pointer from integer without a cast [-Wint-conversion]
249 | msi->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(msi->node),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
In file included from drivers/pci/controller/pci-xgene-msi.c:12:
include/linux/msi.h:473:68: note: expected 'struct fwnode_handle *' but argument is of type 'int'
473 | struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
>> drivers/pci/controller/pci-xgene-msi.c:254:17: error: implicit declaration of function 'irq_domain_remove' [-Werror=implicit-function-declaration]
254 | irq_domain_remove(msi->inner_domain);
| ^~~~~~~~~~~~~~~~~
drivers/pci/controller/pci-xgene-msi.c: At top level:
>> drivers/pci/controller/pci-xgene-msi.c:237:36: error: storage size of 'msi_domain_ops' isn't known
237 | static const struct irq_domain_ops msi_domain_ops = {
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +196 drivers/pci/controller/pci-xgene-msi.c

dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 192
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 193 static int xgene_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 194 unsigned int nr_irqs, void *args)
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 195 {
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 @196 struct xgene_msi *msi = domain->host_data;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 197 int msi_irq;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 198
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 199 mutex_lock(&msi->bitmap_lock);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 200
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 201 msi_irq = bitmap_find_next_zero_area(msi->bitmap, NR_MSI_VEC, 0,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 202 msi->num_cpus, 0);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 203 if (msi_irq < NR_MSI_VEC)
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 204 bitmap_set(msi->bitmap, msi_irq, msi->num_cpus);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 205 else
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 206 msi_irq = -ENOSPC;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 207
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 208 mutex_unlock(&msi->bitmap_lock);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 209
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 210 if (msi_irq < 0)
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 211 return msi_irq;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 212
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 @213 irq_domain_set_info(domain, virq, msi_irq,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 214 &xgene_msi_bottom_irq_chip, domain->host_data,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 215 handle_simple_irq, NULL, NULL);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 216
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 217 return 0;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 218 }
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 219
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 220 static void xgene_irq_domain_free(struct irq_domain *domain,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 221 unsigned int virq, unsigned int nr_irqs)
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 222 {
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 @223 struct irq_data *d = irq_domain_get_irq_data(domain, virq);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 224 struct xgene_msi *msi = irq_data_get_irq_chip_data(d);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 225 u32 hwirq;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 226
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 227 mutex_lock(&msi->bitmap_lock);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 228
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 229 hwirq = hwirq_to_canonical_hwirq(d->hwirq);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 230 bitmap_clear(msi->bitmap, hwirq, msi->num_cpus);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 231
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 232 mutex_unlock(&msi->bitmap_lock);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 233
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 @234 irq_domain_free_irqs_parent(domain, virq, nr_irqs);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 235 }
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 236
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 @237 static const struct irq_domain_ops msi_domain_ops = {
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 @238 .alloc = xgene_irq_domain_alloc,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 @239 .free = xgene_irq_domain_free,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 240 };
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 241
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 242 static int xgene_allocate_domains(struct xgene_msi *msi)
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 243 {
8d63bc7beaeecd drivers/pci/host/pci-xgene-msi.c Marc Zyngier 2015-07-28 @244 msi->inner_domain = irq_domain_add_linear(NULL, NR_MSI_VEC,
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 245 &msi_domain_ops, msi);
8d63bc7beaeecd drivers/pci/host/pci-xgene-msi.c Marc Zyngier 2015-07-28 246 if (!msi->inner_domain)
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 247 return -ENOMEM;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 248
be5436c83ac892 drivers/pci/host/pci-xgene-msi.c Marc Zyngier 2015-10-13 @249 msi->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(msi->node),
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 250 &xgene_msi_domain_info,
8d63bc7beaeecd drivers/pci/host/pci-xgene-msi.c Marc Zyngier 2015-07-28 251 msi->inner_domain);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 252
8d63bc7beaeecd drivers/pci/host/pci-xgene-msi.c Marc Zyngier 2015-07-28 253 if (!msi->msi_domain) {
8d63bc7beaeecd drivers/pci/host/pci-xgene-msi.c Marc Zyngier 2015-07-28 @254 irq_domain_remove(msi->inner_domain);
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 255 return -ENOMEM;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 256 }
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 257
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 258 return 0;
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 259 }
dcd19de36775b6 drivers/pci/host/pci-xgene-msi.c Duc Dang 2015-06-05 260

--
0-DAY CI Kernel Test Service
https://01.org/lkp


Attachments:
(No filename) (14.14 kB)
config (322.24 kB)
Download all attachments