On Fri, Aug 7, 2015 at 1:40 AM, Marc Zyngier <marc.zyng...@arm.com> wrote: > Hi Ben, > > On 07/08/15 06:31, Ben Zhang wrote: >> linux/io.h is needed because the driver uses: >> readl_relaxed >> writel_relaxed >> writeq_relaxed >> readq_relaxed >> iounmap >> >> The header was implicitly included by an unrelated >> commit 332fd7c4fef5 >> ("genirq: Generic chip: Change irq_reg_{readl,writel} arguments") >> from the path below: >> include/linux/io.h >> include/linux/irq.h >> include/linux/of_irq.h >> drivers/irqchip/irq-gic-v3.c >> >> Signed-off-by: Ben Zhang <be...@chromium.org> >> --- >> drivers/irqchip/irq-gic-v3.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c >> index e406bc5..3350b8d 100644 >> --- a/drivers/irqchip/irq-gic-v3.c >> +++ b/drivers/irqchip/irq-gic-v3.c >> @@ -19,6 +19,7 @@ >> #include <linux/cpu_pm.h> >> #include <linux/delay.h> >> #include <linux/interrupt.h> >> +#include <linux/io.h> >> #include <linux/of.h> >> #include <linux/of_address.h> >> #include <linux/of_irq.h> >> > > This seems valid, but out of curiosity: Has this triggered any > observable build failure? Or is that something you found by inspection? > > Thanks, > > M. > -- > Jazz is not dead. It just smells funny...
Hi Marc, We have seen a build failure on the v3.18-based kernel for ChromeOS. After cherry-picking commit 74d23cc704d1 ("time: move the timecounter/cyclecounter code into its own file.") into the kernel, irq-gic-v3 build is broken: /mnt/host/source/src/third_party/kernel/v3.18/drivers/irqchip/irq-gic-v3.c: In function 'gic_do_wait_for_rwp': /mnt/host/source/src/third_party/kernel/v3.18/drivers/irqchip/irq-gic-v3.c:84:2: error: implicit declaration of function 'readl_relaxed' [-Werror=implicit-function-declaration] while (readl_relaxed(base + GICD_CTLR) & GICD_CTLR_RWP) { ^ ... The timecounter patch removes #include <linux/clocksource.h> in include/clocksource/arm_arch_timer.h, and breaks all include paths to the arm64 io.h header, e.g. arch/arm64/include/asm/io.h include/linux/clocksource.h include/clocksource/arm_arch_timer.h arch/arm64/include/asm/arch_timer.h arch/arm64/include/asm/timex.h include/linux/timex.h include/linux/sched.h arch/arm64/include/asm/compat.h arch/arm64/include/asm/stat.h include/linux/stat.h include/linux/sysfs.h include/linux/kobject.h include/linux/device.h include/linux/node.h include/linux/cpu.h drivers/irqchip/irq-gic-v3.c Mainline build is fine because commit 332fd7c4fef5("genirq: Generic chip: Change irq_reg_{readl,writel} arguments") landed before the timecounter patch, and it creates a new include path to the io.h header: arch/arm64/include/asm/io.h include/linux/io.h include/linux/irq.h include/linux/of_irq.h drivers/irqchip/irq-gic-v3.c Thanks, Ben -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/