irqchip: gic: fix compilation of asm code depending on arm-gic.h
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.
--- include/linux/irqchip/arm-gic.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
include/linux/irqchip/arm-gic.h +2 -2
@@ -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
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 includinglinux/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]>Signed-off-by Marc Zyngier <[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@@ -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
PATCH 1/1 irqchip: gic: fix compilation of asm code depending on arm-gic.h
In reply to Marc ZyngierMarc,
Quoted 11 lines · Marc Zyngier
Commit
01f17a66be97(irqchip: gic: Remove warning by includinglinux/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]>Signed-off-by Marc Zyngier <[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
@@ -91,6 +91,8 @@#ifndef __ASSEMBLY__ +#include <linux/irqdomain.h> +struct device_node ;extern struct irq_chip gic_arch_extn;