diff options
author | Nicolai Stange <nstange@suse.de> | 2018-07-29 06:15:33 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2018-08-05 03:53:13 -0400 |
commit | 447ae316670230d7d29430e2cbf1f5db4f49d14c (patch) | |
tree | 9ab0392a39391993a79ec49f77c1ab26e8ff74a8 | |
parent | 45b575c00d8e72d69d75dd8c112f044b7b01b069 (diff) |
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>
-rw-r--r-- | arch/x86/include/asm/dmi.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/hardirq.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/kvm_host.h | 1 | ||||
-rw-r--r-- | arch/x86/kernel/apic/apic.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/apic/msi.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/apic/vector.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/fpu/core.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/hpet.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/i8259.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/idt.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/irq.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/irq_32.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/irq_64.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/irqinit.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/smpboot.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/time.c | 1 | ||||
-rw-r--r-- | arch/x86/mm/pti.c | 1 | ||||
-rw-r--r-- | arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c | 1 | ||||
-rw-r--r-- | arch/x86/xen/enlighten.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_pmu.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_lpe_audio.c | 1 | ||||
-rw-r--r-- | drivers/pci/controller/pci-hyperv.c | 1 |
23 files changed, 22 insertions, 2 deletions
diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h index 0ab2ab27ad1f..b825cb201251 100644 --- a/arch/x86/include/asm/dmi.h +++ b/arch/x86/include/asm/dmi.h | |||
@@ -4,8 +4,8 @@ | |||
4 | 4 | ||
5 | #include <linux/compiler.h> | 5 | #include <linux/compiler.h> |
6 | #include <linux/init.h> | 6 | #include <linux/init.h> |
7 | #include <linux/io.h> | ||
7 | 8 | ||
8 | #include <asm/io.h> | ||
9 | #include <asm/setup.h> | 9 | #include <asm/setup.h> |
10 | 10 | ||
11 | static __always_inline __init void *dmi_alloc(unsigned len) | 11 | static __always_inline __init void *dmi_alloc(unsigned len) |
diff --git a/arch/x86/include/asm/hardirq.h b/arch/x86/include/asm/hardirq.h index 0b854ebb99df..d9069bb26c7f 100644 --- a/arch/x86/include/asm/hardirq.h +++ b/arch/x86/include/asm/hardirq.h | |||
@@ -3,7 +3,6 @@ | |||
3 | #define _ASM_X86_HARDIRQ_H | 3 | #define _ASM_X86_HARDIRQ_H |
4 | 4 | ||
5 | #include <linux/threads.h> | 5 | #include <linux/threads.h> |
6 | #include <linux/irq.h> | ||
7 | 6 | ||
8 | typedef struct { | 7 | typedef struct { |
9 | u16 __softirq_pending; | 8 | u16 __softirq_pending; |
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 57d418061c55..37749429afd9 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/tracepoint.h> | 17 | #include <linux/tracepoint.h> |
18 | #include <linux/cpumask.h> | 18 | #include <linux/cpumask.h> |
19 | #include <linux/irq_work.h> | 19 | #include <linux/irq_work.h> |
20 | #include <linux/irq.h> | ||
20 | 21 | ||
21 | #include <linux/kvm.h> | 22 | #include <linux/kvm.h> |
22 | #include <linux/kvm_para.h> | 23 | #include <linux/kvm_para.h> |
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 8703caa9d6db..f93a21b01072 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c | |||
@@ -56,6 +56,7 @@ | |||
56 | #include <asm/hypervisor.h> | 56 | #include <asm/hypervisor.h> |
57 | #include <asm/cpu_device_id.h> | 57 | #include <asm/cpu_device_id.h> |
58 | #include <asm/intel-family.h> | 58 | #include <asm/intel-family.h> |
59 | #include <asm/irq_regs.h> | ||
59 | 60 | ||
60 | unsigned int num_processors; | 61 | unsigned int num_processors; |
61 | 62 | ||
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 3982f79d2377..ff0d14cd9e82 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -33,6 +33,7 @@ | |||
33 | 33 | ||
34 | #include <linux/mm.h> | 34 | #include <linux/mm.h> |
35 | #include <linux/interrupt.h> | 35 | #include <linux/interrupt.h> |
36 | #include <linux/irq.h> | ||
36 | #include <linux/init.h> | 37 | #include <linux/init.h> |
37 | #include <linux/delay.h> | 38 | #include <linux/delay.h> |
38 | #include <linux/sched.h> | 39 | #include <linux/sched.h> |
diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c index ce503c99f5c4..72a94401f9e0 100644 --- a/arch/x86/kernel/apic/msi.c +++ b/arch/x86/kernel/apic/msi.c | |||
@@ -12,6 +12,7 @@ | |||
12 | */ | 12 | */ |
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
14 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
15 | #include <linux/irq.h> | ||
15 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
16 | #include <linux/dmar.h> | 17 | #include <linux/dmar.h> |
17 | #include <linux/hpet.h> | 18 | #include <linux/hpet.h> |
diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index 35aaee4fc028..c9b773401fd8 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c | |||
@@ -11,6 +11,7 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/irq.h> | ||
14 | #include <linux/seq_file.h> | 15 | #include <linux/seq_file.h> |
15 | #include <linux/init.h> | 16 | #include <linux/init.h> |
16 | #include <linux/compiler.h> | 17 | #include <linux/compiler.h> |
diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c index f92a6593de1e..2ea85b32421a 100644 --- a/arch/x86/kernel/fpu/core.c +++ b/arch/x86/kernel/fpu/core.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <asm/fpu/signal.h> | 10 | #include <asm/fpu/signal.h> |
11 | #include <asm/fpu/types.h> | 11 | #include <asm/fpu/types.h> |
12 | #include <asm/traps.h> | 12 | #include <asm/traps.h> |
13 | #include <asm/irq_regs.h> | ||
13 | 14 | ||
14 | #include <linux/hardirq.h> | 15 | #include <linux/hardirq.h> |
15 | #include <linux/pkeys.h> | 16 | #include <linux/pkeys.h> |
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index 346b24883911..b0acb22e5a46 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
@@ -1,6 +1,7 @@ | |||
1 | #include <linux/clocksource.h> | 1 | #include <linux/clocksource.h> |
2 | #include <linux/clockchips.h> | 2 | #include <linux/clockchips.h> |
3 | #include <linux/interrupt.h> | 3 | #include <linux/interrupt.h> |
4 | #include <linux/irq.h> | ||
4 | #include <linux/export.h> | 5 | #include <linux/export.h> |
5 | #include <linux/delay.h> | 6 | #include <linux/delay.h> |
6 | #include <linux/errno.h> | 7 | #include <linux/errno.h> |
diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c index 86c4439f9d74..519649ddf100 100644 --- a/arch/x86/kernel/i8259.c +++ b/arch/x86/kernel/i8259.c | |||
@@ -5,6 +5,7 @@ | |||
5 | #include <linux/sched.h> | 5 | #include <linux/sched.h> |
6 | #include <linux/ioport.h> | 6 | #include <linux/ioport.h> |
7 | #include <linux/interrupt.h> | 7 | #include <linux/interrupt.h> |
8 | #include <linux/irq.h> | ||
8 | #include <linux/timex.h> | 9 | #include <linux/timex.h> |
9 | #include <linux/random.h> | 10 | #include <linux/random.h> |
10 | #include <linux/init.h> | 11 | #include <linux/init.h> |
diff --git a/arch/x86/kernel/idt.c b/arch/x86/kernel/idt.c index 74383a3780dc..01adea278a71 100644 --- a/arch/x86/kernel/idt.c +++ b/arch/x86/kernel/idt.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <asm/traps.h> | 8 | #include <asm/traps.h> |
9 | #include <asm/proto.h> | 9 | #include <asm/proto.h> |
10 | #include <asm/desc.h> | 10 | #include <asm/desc.h> |
11 | #include <asm/hw_irq.h> | ||
11 | 12 | ||
12 | struct idt_data { | 13 | struct idt_data { |
13 | unsigned int vector; | 14 | unsigned int vector; |
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c index 328d027d829d..59b5f2ea7c2f 100644 --- a/arch/x86/kernel/irq.c +++ b/arch/x86/kernel/irq.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/ftrace.h> | 10 | #include <linux/ftrace.h> |
11 | #include <linux/delay.h> | 11 | #include <linux/delay.h> |
12 | #include <linux/export.h> | 12 | #include <linux/export.h> |
13 | #include <linux/irq.h> | ||
13 | 14 | ||
14 | #include <asm/apic.h> | 15 | #include <asm/apic.h> |
15 | #include <asm/io_apic.h> | 16 | #include <asm/io_apic.h> |
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c index c1bdbd3d3232..95600a99ae93 100644 --- a/arch/x86/kernel/irq_32.c +++ b/arch/x86/kernel/irq_32.c | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | #include <linux/seq_file.h> | 12 | #include <linux/seq_file.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/irq.h> | ||
14 | #include <linux/kernel_stat.h> | 15 | #include <linux/kernel_stat.h> |
15 | #include <linux/notifier.h> | 16 | #include <linux/notifier.h> |
16 | #include <linux/cpu.h> | 17 | #include <linux/cpu.h> |
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c index d86e344f5b3d..0469cd078db1 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | #include <linux/kernel_stat.h> | 12 | #include <linux/kernel_stat.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/irq.h> | ||
14 | #include <linux/seq_file.h> | 15 | #include <linux/seq_file.h> |
15 | #include <linux/delay.h> | 16 | #include <linux/delay.h> |
16 | #include <linux/ftrace.h> | 17 | #include <linux/ftrace.h> |
diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c index 772196c1b8c4..a0693b71cfc1 100644 --- a/arch/x86/kernel/irqinit.c +++ b/arch/x86/kernel/irqinit.c | |||
@@ -5,6 +5,7 @@ | |||
5 | #include <linux/sched.h> | 5 | #include <linux/sched.h> |
6 | #include <linux/ioport.h> | 6 | #include <linux/ioport.h> |
7 | #include <linux/interrupt.h> | 7 | #include <linux/interrupt.h> |
8 | #include <linux/irq.h> | ||
8 | #include <linux/timex.h> | 9 | #include <linux/timex.h> |
9 | #include <linux/random.h> | 10 | #include <linux/random.h> |
10 | #include <linux/kprobes.h> | 11 | #include <linux/kprobes.h> |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 7f7def989fb0..f5d30c68fd09 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -80,6 +80,7 @@ | |||
80 | #include <asm/intel-family.h> | 80 | #include <asm/intel-family.h> |
81 | #include <asm/cpu_device_id.h> | 81 | #include <asm/cpu_device_id.h> |
82 | #include <asm/spec-ctrl.h> | 82 | #include <asm/spec-ctrl.h> |
83 | #include <asm/hw_irq.h> | ||
83 | 84 | ||
84 | /* representing HT siblings of each logical CPU */ | 85 | /* representing HT siblings of each logical CPU */ |
85 | DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_map); | 86 | DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_map); |
diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c index 774ebafa97c4..be01328eb755 100644 --- a/arch/x86/kernel/time.c +++ b/arch/x86/kernel/time.c | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/clockchips.h> | 13 | #include <linux/clockchips.h> |
14 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
15 | #include <linux/irq.h> | ||
15 | #include <linux/i8253.h> | 16 | #include <linux/i8253.h> |
16 | #include <linux/time.h> | 17 | #include <linux/time.h> |
17 | #include <linux/export.h> | 18 | #include <linux/export.h> |
diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c index 4d418e705878..fb752d9a3ce9 100644 --- a/arch/x86/mm/pti.c +++ b/arch/x86/mm/pti.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <asm/pgalloc.h> | 45 | #include <asm/pgalloc.h> |
46 | #include <asm/tlbflush.h> | 46 | #include <asm/tlbflush.h> |
47 | #include <asm/desc.h> | 47 | #include <asm/desc.h> |
48 | #include <asm/sections.h> | ||
48 | 49 | ||
49 | #undef pr_fmt | 50 | #undef pr_fmt |
50 | #define pr_fmt(fmt) "Kernel/User page tables isolation: " fmt | 51 | #define pr_fmt(fmt) "Kernel/User page tables isolation: " fmt |
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c b/arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c index 4f5fa65a1011..2acd6be13375 100644 --- a/arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c +++ b/arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <asm/intel-mid.h> | 18 | #include <asm/intel-mid.h> |
19 | #include <asm/intel_scu_ipc.h> | 19 | #include <asm/intel_scu_ipc.h> |
20 | #include <asm/io_apic.h> | 20 | #include <asm/io_apic.h> |
21 | #include <asm/hw_irq.h> | ||
21 | 22 | ||
22 | #define TANGIER_EXT_TIMER0_MSI 12 | 23 | #define TANGIER_EXT_TIMER0_MSI 12 |
23 | 24 | ||
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index c9081c6671f0..df208af3cd74 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -3,6 +3,7 @@ | |||
3 | #endif | 3 | #endif |
4 | #include <linux/cpu.h> | 4 | #include <linux/cpu.h> |
5 | #include <linux/kexec.h> | 5 | #include <linux/kexec.h> |
6 | #include <linux/slab.h> | ||
6 | 7 | ||
7 | #include <xen/features.h> | 8 | #include <xen/features.h> |
8 | #include <xen/page.h> | 9 | #include <xen/page.h> |
diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c index dc87797db500..b50b74053664 100644 --- a/drivers/gpu/drm/i915/i915_pmu.c +++ b/drivers/gpu/drm/i915/i915_pmu.c | |||
@@ -4,6 +4,7 @@ | |||
4 | * Copyright © 2017-2018 Intel Corporation | 4 | * Copyright © 2017-2018 Intel Corporation |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/irq.h> | ||
7 | #include "i915_pmu.h" | 8 | #include "i915_pmu.h" |
8 | #include "intel_ringbuffer.h" | 9 | #include "intel_ringbuffer.h" |
9 | #include "i915_drv.h" | 10 | #include "i915_drv.h" |
diff --git a/drivers/gpu/drm/i915/intel_lpe_audio.c b/drivers/gpu/drm/i915/intel_lpe_audio.c index 6269750e2b54..b4941101f21a 100644 --- a/drivers/gpu/drm/i915/intel_lpe_audio.c +++ b/drivers/gpu/drm/i915/intel_lpe_audio.c | |||
@@ -62,6 +62,7 @@ | |||
62 | 62 | ||
63 | #include <linux/acpi.h> | 63 | #include <linux/acpi.h> |
64 | #include <linux/device.h> | 64 | #include <linux/device.h> |
65 | #include <linux/irq.h> | ||
65 | #include <linux/pci.h> | 66 | #include <linux/pci.h> |
66 | #include <linux/pm_runtime.h> | 67 | #include <linux/pm_runtime.h> |
67 | 68 | ||
diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c index 6cc5036ac83c..fadc305533d9 100644 --- a/drivers/pci/controller/pci-hyperv.c +++ b/drivers/pci/controller/pci-hyperv.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <linux/irqdomain.h> | 45 | #include <linux/irqdomain.h> |
46 | #include <asm/irqdomain.h> | 46 | #include <asm/irqdomain.h> |
47 | #include <asm/apic.h> | 47 | #include <asm/apic.h> |
48 | #include <linux/irq.h> | ||
48 | #include <linux/msi.h> | 49 | #include <linux/msi.h> |
49 | #include <linux/hyperv.h> | 50 | #include <linux/hyperv.h> |
50 | #include <linux/refcount.h> | 51 | #include <linux/refcount.h> |