Skip to contentSkip to conversation

irqchip: gic: fix compilation of asm code depending on arm-gic.h

PATCH New Marc Zyngier 3 participants 3 messages Nov 28, 2014 Arm generic interrupt controller drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 irqchip: gic: fix compilation of asm code depending on arm-gic.h

Commit 01f17a66be97 (irqchip: gic: Remove warning by including linux/irqdomain.h) indeed fixed an annoying warning in the ARM code, but also broke the compilation of arm64 defconfig and any other defconfig that includes KVM support in a rather spectacular way:

http://lists.linaro.org/pipermail/kernel-build-reports/2014-November/006475.html

Moving the #include directive to a spot that is not going to be used by assembly code fixes the issue.

Cc Jason Cooper <[email protected]>
Cc Will Deacon <[email protected]>
---
 include/linux/irqchip/arm-gic.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
include/linux/irqchip/arm-gic.h +2 -2
index d1b2263..71d706d 100644
@@ -10,8 +10,6 @@
 #ifndef __LINUX_IRQCHIP_ARM_GIC_H
 #define __LINUX_IRQCHIP_ARM_GIC_H
 
-#include <linux/irqdomain.h>
-
 #define GIC_CPU_CTRL			0x00
 #define GIC_CPU_PRIMASK			0x04
 #define GIC_CPU_BINPOINT		0x08
@@ -93,6 +91,8 @@
 
 #ifndef __ASSEMBLY__
 
+#include <linux/irqdomain.h>
+
 struct device_node;
 
 extern struct irq_chip gic_arch_extn;
Signature · 1 line
2.1.3
#1 lore raw

PATCH 1/1 irqchip: gic: fix compilation of asm code depending on arm-gic.h

Quoted 11 lines · Marc Zyngier

Commit 01f17a66be97 (irqchip: gic: Remove warning by including linux/irqdomain.h) indeed fixed an annoying warning in the ARM code, but also broke the compilation of arm64 defconfig and any other defconfig that includes KVM support in a rather spectacular way:

http://lists.linaro.org/pipermail/kernel-build-reports/2014-November/006475.html

Moving the #include directive to a spot that is not going to be used by assembly code fixes the issue.

Quoted 6 lines
Cc Jason Cooper <[email protected]>
Cc Will Deacon <[email protected]>
---
 include/linux/irqchip/arm-gic.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

arm64 allmodconfig is dead in the water without this fix.

Will

Quoted 26 lines
include/linux/irqchip/arm-gic.h +2 -2
index d1b2263..71d706d 100644
@@ -10,8 +10,6 @@
 #ifndef __LINUX_IRQCHIP_ARM_GIC_H
 #define __LINUX_IRQCHIP_ARM_GIC_H
 
-#include <linux/irqdomain.h>
-
 #define GIC_CPU_CTRL			0x00
 #define GIC_CPU_PRIMASK			0x04
 #define GIC_CPU_BINPOINT		0x08
@@ -93,6 +91,8 @@
 
 #ifndef __ASSEMBLY__
 
+#include <linux/irqdomain.h>
+
 struct device_node;
 
 extern struct irq_chip gic_arch_extn;
Signature · 1 line
2.1.3
#2 lore raw

PATCH 1/1 irqchip: gic: fix compilation of asm code depending on arm-gic.h

In reply to Marc Zyngier

Marc,

Quoted 11 lines · Marc Zyngier

Commit 01f17a66be97 (irqchip: gic: Remove warning by including linux/irqdomain.h) indeed fixed an annoying warning in the ARM code, but also broke the compilation of arm64 defconfig and any other defconfig that includes KVM support in a rather spectacular way:

http://lists.linaro.org/pipermail/kernel-build-reports/2014-November/006475.html

Moving the #include directive to a spot that is not going to be used by assembly code fixes the issue.

Quoted 6 lines
Cc Jason Cooper <[email protected]>
Cc Will Deacon <[email protected]>
---
 include/linux/irqchip/arm-gic.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

I squashed this into the original fix with your S-o-b, and Will's Ack. Pushing to irqchip/for-next shortly.

thx,

Jason.

------------8<----------------------
commit df870c78848aac4d953f61a8926a792de8133b9e

Author: Jason Cooper <[email protected]>
Date:   Thu Nov 27 18:27:49 2014 +0000

irqchip: gic: Remove warning by including linux/irqdomain.h

Commit

853a33ce6932 irqchip: gic-v2m: Add support for ARM GICv2m MSI(-X) doorbell

Introduced a series of warnings when building ARM multi_v7_defconfig:

include/linux/irqchip/arm-gic.h:109:53: warning: its scope is only this definition or declaration, which is probably not what you want In file included from arch/arm/mach-ux500/pm.c:13:0:
include/linux/irqchip/arm-gic.h:109:53: warning: 'struct irq_domain' declared inside parameter list
int gicv2m_of_init(struct device_node *node, struct irq_domain *parent);
^

Fix this by adding the proper include.

include/linux/irqchip/arm-gic.h +2 -0
index 60b09ed58cae..71d706d5f169 100644
@@ -91,6 +91,8 @@
 
 #ifndef __ASSEMBLY__
 
+#include <linux/irqdomain.h>
+
 struct device_node;
 
 extern struct irq_chip gic_arch_extn;