Commit ba84be2338d3a2b6020d39279335bb06fcd332e1

Authored by Russell King
Committed by Linus Torvalds
1 parent 08adefd479

remove linux/hardirq.h from asm-generic/local.h

While looking at reducing the amount of architecture namespace pollution
in the generic kernel, I found that asm/irq.h is included in the vast
majority of compilations on ARM (around 650 files.)

Since asm/irq.h includes a sub-architecture include file on ARM, this
causes a negative impact on the ccache's ability to re-use the build
results from other sub-architectures, so we have a desire to reduce the
dependencies on asm/irq.h.

It turns out that a major cause of this is the needless include of
linux/hardirq.h into asm-generic/local.h.  The patch below removes this
include, resulting in some 250 to 300 files (around half) of the kernel
then omitting asm/irq.h.

My test builds still succeed, provided two ARM files are fixed
(arch/arm/kernel/traps.c and arch/arm/mm/fault.c) - so there may be
negative impacts for this on other architectures.

Note that x86 does not include asm/irq.h nor linux/hardirq.h in its
asm/local.h, so this patch can be viewed as bringing the generic version
into line with the x86 version.

[kosaki.motohiro@jp.fujitsu.com: add #include <linux/irqflags.h> to acpi/processor_idle.c]
[adobriyan@gmail.com: fix sparc64]
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 4 changed files with 3 additions and 1 deletions Side-by-side Diff

arch/avr32/kernel/traps.c
... ... @@ -7,6 +7,7 @@
7 7 */
8 8  
9 9 #include <linux/bug.h>
  10 +#include <linux/hardirq.h>
10 11 #include <linux/init.h>
11 12 #include <linux/kallsyms.h>
12 13 #include <linux/kdebug.h>
arch/sh/kernel/traps_32.c
... ... @@ -13,6 +13,7 @@
13 13 */
14 14 #include <linux/kernel.h>
15 15 #include <linux/ptrace.h>
  16 +#include <linux/hardirq.h>
16 17 #include <linux/init.h>
17 18 #include <linux/spinlock.h>
18 19 #include <linux/module.h>
drivers/acpi/processor_idle.c
... ... @@ -41,6 +41,7 @@
41 41 #include <linux/pm_qos_params.h>
42 42 #include <linux/clockchips.h>
43 43 #include <linux/cpuidle.h>
  44 +#include <linux/irqflags.h>
44 45  
45 46 /*
46 47 * Include the apic definitions for x86 to have the APIC timer related defines
include/asm-generic/local.h
... ... @@ -2,7 +2,6 @@
2 2 #define _ASM_GENERIC_LOCAL_H
3 3  
4 4 #include <linux/percpu.h>
5   -#include <linux/hardirq.h>
6 5 #include <asm/atomic.h>
7 6 #include <asm/types.h>
8 7