Skip to content

Commit 447ae31

Browse files
nicstangeKAGA-KOKO
authored andcommitted
x86: Don't include linux/irq.h from asm/hardirq.h
The next patch in this series will have to make the definition of irq_cpustat_t available to entering_irq(). Inclusion of asm/hardirq.h into asm/apic.h would cause circular header dependencies like asm/smp.h asm/apic.h asm/hardirq.h linux/irq.h linux/topology.h linux/smp.h asm/smp.h or linux/gfp.h linux/mmzone.h asm/mmzone.h asm/mmzone_64.h asm/smp.h asm/apic.h asm/hardirq.h linux/irq.h linux/irqdesc.h linux/kobject.h linux/sysfs.h linux/kernfs.h linux/idr.h linux/gfp.h and others. This causes compilation errors because of the header guards becoming effective in the second inclusion: symbols/macros that had been defined before wouldn't be available to intermediate headers in the #include chain anymore. A possible workaround would be to move the definition of irq_cpustat_t into its own header and include that from both, asm/hardirq.h and asm/apic.h. However, this wouldn't solve the real problem, namely asm/harirq.h unnecessarily pulling in all the linux/irq.h cruft: nothing in asm/hardirq.h itself requires it. Also, note that there are some other archs, like e.g. arm64, which don't have that #include in their asm/hardirq.h. Remove the linux/irq.h #include from x86' asm/hardirq.h. Fix resulting compilation errors by adding appropriate #includes to *.c files as needed. Note that some of these *.c files could be cleaned up a bit wrt. to their set of #includes, but that should better be done from separate patches, if at all. Signed-off-by: Nicolai Stange <nstange@suse.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 parent 45b575c commit 447ae31

File tree

23 files changed

+22
-2
lines changed

23 files changed

+22
-2
lines changed

arch/x86/include/asm/dmi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
#include <linux/compiler.h>
66
#include <linux/init.h>
7+
#include <linux/io.h>
78

8-
#include <asm/io.h>
99
#include <asm/setup.h>
1010

1111
static __always_inline __init void *dmi_alloc(unsigned len)

arch/x86/include/asm/hardirq.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#define _ASM_X86_HARDIRQ_H
44

55
#include <linux/threads.h>
6-
#include <linux/irq.h>
76

87
typedef struct {
98
u16 __softirq_pending;

arch/x86/include/asm/kvm_host.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include <linux/tracepoint.h>
1818
#include <linux/cpumask.h>
1919
#include <linux/irq_work.h>
20+
#include <linux/irq.h>
2021

2122
#include <linux/kvm.h>
2223
#include <linux/kvm_para.h>

arch/x86/kernel/apic/apic.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
#include <asm/hypervisor.h>
5757
#include <asm/cpu_device_id.h>
5858
#include <asm/intel-family.h>
59+
#include <asm/irq_regs.h>
5960

6061
unsigned int num_processors;
6162

arch/x86/kernel/apic/io_apic.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
#include <linux/mm.h>
3535
#include <linux/interrupt.h>
36+
#include <linux/irq.h>
3637
#include <linux/init.h>
3738
#include <linux/delay.h>
3839
#include <linux/sched.h>

arch/x86/kernel/apic/msi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
*/
1313
#include <linux/mm.h>
1414
#include <linux/interrupt.h>
15+
#include <linux/irq.h>
1516
#include <linux/pci.h>
1617
#include <linux/dmar.h>
1718
#include <linux/hpet.h>

arch/x86/kernel/apic/vector.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
* published by the Free Software Foundation.
1212
*/
1313
#include <linux/interrupt.h>
14+
#include <linux/irq.h>
1415
#include <linux/seq_file.h>
1516
#include <linux/init.h>
1617
#include <linux/compiler.h>

arch/x86/kernel/fpu/core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <asm/fpu/signal.h>
1111
#include <asm/fpu/types.h>
1212
#include <asm/traps.h>
13+
#include <asm/irq_regs.h>
1314

1415
#include <linux/hardirq.h>
1516
#include <linux/pkeys.h>

arch/x86/kernel/hpet.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <linux/clocksource.h>
22
#include <linux/clockchips.h>
33
#include <linux/interrupt.h>
4+
#include <linux/irq.h>
45
#include <linux/export.h>
56
#include <linux/delay.h>
67
#include <linux/errno.h>

arch/x86/kernel/i8259.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <linux/sched.h>
66
#include <linux/ioport.h>
77
#include <linux/interrupt.h>
8+
#include <linux/irq.h>
89
#include <linux/timex.h>
910
#include <linux/random.h>
1011
#include <linux/init.h>

arch/x86/kernel/idt.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <asm/traps.h>
99
#include <asm/proto.h>
1010
#include <asm/desc.h>
11+
#include <asm/hw_irq.h>
1112

1213
struct idt_data {
1314
unsigned int vector;

arch/x86/kernel/irq.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <linux/ftrace.h>
1111
#include <linux/delay.h>
1212
#include <linux/export.h>
13+
#include <linux/irq.h>
1314

1415
#include <asm/apic.h>
1516
#include <asm/io_apic.h>

arch/x86/kernel/irq_32.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
#include <linux/seq_file.h>
1313
#include <linux/interrupt.h>
14+
#include <linux/irq.h>
1415
#include <linux/kernel_stat.h>
1516
#include <linux/notifier.h>
1617
#include <linux/cpu.h>

arch/x86/kernel/irq_64.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
#include <linux/kernel_stat.h>
1313
#include <linux/interrupt.h>
14+
#include <linux/irq.h>
1415
#include <linux/seq_file.h>
1516
#include <linux/delay.h>
1617
#include <linux/ftrace.h>

arch/x86/kernel/irqinit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <linux/sched.h>
66
#include <linux/ioport.h>
77
#include <linux/interrupt.h>
8+
#include <linux/irq.h>
89
#include <linux/timex.h>
910
#include <linux/random.h>
1011
#include <linux/kprobes.h>

arch/x86/kernel/smpboot.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
#include <asm/intel-family.h>
8181
#include <asm/cpu_device_id.h>
8282
#include <asm/spec-ctrl.h>
83+
#include <asm/hw_irq.h>
8384

8485
/* representing HT siblings of each logical CPU */
8586
DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_map);

arch/x86/kernel/time.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
#include <linux/clockchips.h>
1414
#include <linux/interrupt.h>
15+
#include <linux/irq.h>
1516
#include <linux/i8253.h>
1617
#include <linux/time.h>
1718
#include <linux/export.h>

arch/x86/mm/pti.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include <asm/pgalloc.h>
4646
#include <asm/tlbflush.h>
4747
#include <asm/desc.h>
48+
#include <asm/sections.h>
4849

4950
#undef pr_fmt
5051
#define pr_fmt(fmt) "Kernel/User page tables isolation: " fmt

arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <asm/intel-mid.h>
1919
#include <asm/intel_scu_ipc.h>
2020
#include <asm/io_apic.h>
21+
#include <asm/hw_irq.h>
2122

2223
#define TANGIER_EXT_TIMER0_MSI 12
2324

arch/x86/xen/enlighten.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#endif
44
#include <linux/cpu.h>
55
#include <linux/kexec.h>
6+
#include <linux/slab.h>
67

78
#include <xen/features.h>
89
#include <xen/page.h>

drivers/gpu/drm/i915/i915_pmu.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* Copyright © 2017-2018 Intel Corporation
55
*/
66

7+
#include <linux/irq.h>
78
#include "i915_pmu.h"
89
#include "intel_ringbuffer.h"
910
#include "i915_drv.h"

drivers/gpu/drm/i915/intel_lpe_audio.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262

6363
#include <linux/acpi.h>
6464
#include <linux/device.h>
65+
#include <linux/irq.h>
6566
#include <linux/pci.h>
6667
#include <linux/pm_runtime.h>
6768

drivers/pci/controller/pci-hyperv.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include <linux/irqdomain.h>
4646
#include <asm/irqdomain.h>
4747
#include <asm/apic.h>
48+
#include <linux/irq.h>
4849
#include <linux/msi.h>
4950
#include <linux/hyperv.h>
5051
#include <linux/refcount.h>

0 commit comments

Comments
 (0)