mirror of https://github.com/torvalds/linux.git
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> |
||
|---|---|---|
| .. | ||
| cpu | ||
| timers | ||
| vsyscall | ||
| .gitignore | ||
| Makefile | ||
| Makefile_32 | ||
| Makefile_64 | ||
| asm-offsets.c | ||
| cpufreq.c | ||
| crash_dump.c | ||
| debugtraps.S | ||
| disassemble.c | ||
| early_printk.c | ||
| entry-common.S | ||
| ftrace.c | ||
| gpio.c | ||
| head_32.S | ||
| head_64.S | ||
| idle.c | ||
| init_task.c | ||
| io.c | ||
| io_generic.c | ||
| io_trapped.c | ||
| irq.c | ||
| kgdb.c | ||
| kprobes.c | ||
| machine_kexec.c | ||
| machvec.c | ||
| module.c | ||
| process_32.c | ||
| process_64.c | ||
| ptrace_32.c | ||
| ptrace_64.c | ||
| relocate_kernel.S | ||
| setup.c | ||
| sh_bios.c | ||
| sh_ksyms_32.c | ||
| sh_ksyms_64.c | ||
| signal_32.c | ||
| signal_64.c | ||
| smp.c | ||
| stacktrace.c | ||
| sys_sh.c | ||
| sys_sh32.c | ||
| sys_sh64.c | ||
| syscalls_32.S | ||
| syscalls_64.S | ||
| time_32.c | ||
| time_64.c | ||
| topology.c | ||
| traps.c | ||
| traps_32.c | ||
| traps_64.c | ||
| vmlinux.lds.S | ||
| vmlinux_32.lds.S | ||
| vmlinux_64.lds.S | ||