Skip to content

Commit 312a466

Browse files
committed
Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 cleanups from Ingo Molnar: "Misc cleanups" * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/kprobes: Remove trampoline_handler() prototype x86/kernel: Fix more -Wmissing-prototypes warnings x86: Fix various typos in comments x86/headers: Fix -Wmissing-prototypes warning x86/process: Avoid unnecessary NULL check in get_wchan() x86/traps: Complete prototype declarations x86/mce: Fix -Wmissing-prototypes warnings x86/gart: Rewrite early_gart_iommu_check() comment
2 parents 6e54df0 + 4b1baca commit 312a466

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+163
-76
lines changed

arch/x86/crypto/cast5_avx_glue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Glue Code for the AVX assembler implemention of the Cast5 Cipher
2+
* Glue Code for the AVX assembler implementation of the Cast5 Cipher
33
*
44
* Copyright (C) 2012 Johannes Goetzfried
55
* <Johannes.Goetzfried@informatik.stud.uni-erlangen.de>

arch/x86/crypto/cast6_avx_glue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Glue Code for the AVX assembler implemention of the Cast6 Cipher
2+
* Glue Code for the AVX assembler implementation of the Cast6 Cipher
33
*
44
* Copyright (C) 2012 Johannes Goetzfried
55
* <Johannes.Goetzfried@informatik.stud.uni-erlangen.de>

arch/x86/entry/common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ static void exit_to_usermode_loop(struct pt_regs *regs, u32 cached_flags)
140140
/*
141141
* In order to return to user mode, we need to have IRQs off with
142142
* none of EXIT_TO_USERMODE_LOOP_FLAGS set. Several of these flags
143-
* can be set at any time on preemptable kernels if we have IRQs on,
143+
* can be set at any time on preemptible kernels if we have IRQs on,
144144
* so we need to loop. Disabling preemption wouldn't help: doing the
145145
* work to clear some of the flags can sleep.
146146
*/

arch/x86/entry/vdso/vma.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ int map_vdso_once(const struct vdso_image *image, unsigned long addr)
261261
* abusing from userspace install_speciall_mapping, which may
262262
* not do accounting and rlimit right.
263263
* We could search vma near context.vdso, but it's a slowpath,
264-
* so let's explicitely check all VMAs to be completely sure.
264+
* so let's explicitly check all VMAs to be completely sure.
265265
*/
266266
for (vma = mm->mmap; vma; vma = vma->vm_next) {
267267
if (vma_is_special_mapping(vma, &vdso_mapping) ||

arch/x86/events/intel/bts.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,7 @@ static __init int bts_init(void)
589589
* the AUX buffer.
590590
*
591591
* However, since this driver supports per-CPU and per-task inherit
592-
* we cannot use the user mapping since it will not be availble
592+
* we cannot use the user mapping since it will not be available
593593
* if we're not running the owning process.
594594
*
595595
* With PTI we can't use the kernal map either, because its not

arch/x86/events/intel/core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1930,7 +1930,7 @@ static void intel_pmu_enable_all(int added)
19301930
* in sequence on the same PMC or on different PMCs.
19311931
*
19321932
* In practise it appears some of these events do in fact count, and
1933-
* we need to programm all 4 events.
1933+
* we need to program all 4 events.
19341934
*/
19351935
static void intel_pmu_nhm_workaround(void)
19361936
{

arch/x86/events/intel/ds.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1199,7 +1199,7 @@ static void setup_pebs_sample_data(struct perf_event *event,
11991199
/*
12001200
* We must however always use iregs for the unwinder to stay sane; the
12011201
* record BP,SP,IP can point into thin air when the record is from a
1202-
* previous PMI context or an (I)RET happend between the record and
1202+
* previous PMI context or an (I)RET happened between the record and
12031203
* PMI.
12041204
*/
12051205
if (sample_type & PERF_SAMPLE_CALLCHAIN)

arch/x86/events/intel/p4.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1259,7 +1259,7 @@ static int p4_pmu_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign
12591259
}
12601260
/*
12611261
* Perf does test runs to see if a whole group can be assigned
1262-
* together succesfully. There can be multiple rounds of this.
1262+
* together successfully. There can be multiple rounds of this.
12631263
* Unfortunately, p4_pmu_swap_config_ts touches the hwc->config
12641264
* bits, such that the next round of group assignments will
12651265
* cause the above p4_should_swap_ts to pass instead of fail.

arch/x86/include/asm/alternative.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
174174
/*
175175
* Alternative inline assembly with input.
176176
*
177-
* Pecularities:
177+
* Peculiarities:
178178
* No memory clobber here.
179179
* Argument numbers start with 1.
180180
* Best is to use constraints that are fixed size (like (%1) ... "r")

arch/x86/include/asm/cmpxchg.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include <asm/alternative.h> /* Provides LOCK_PREFIX */
88

99
/*
10-
* Non-existant functions to indicate usage errors at link time
10+
* Non-existent functions to indicate usage errors at link time
1111
* (or compile-time if the compiler implements __compiletime_error().
1212
*/
1313
extern void __xchg_wrong_size(void)

arch/x86/include/asm/crash.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ int crash_load_segments(struct kimage *image);
66
int crash_copy_backup_region(struct kimage *image);
77
int crash_setup_memmap_entries(struct kimage *image,
88
struct boot_params *params);
9+
void crash_smp_send_stop(void);
910

1011
#endif /* _ASM_X86_CRASH_H */

arch/x86/include/asm/efi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* This is the main reason why we're doing stable VA mappings for RT
2020
* services.
2121
*
22-
* This flag is used in conjuction with a chicken bit called
22+
* This flag is used in conjunction with a chicken bit called
2323
* "efi=old_map" which can be used as a fallback to the old runtime
2424
* services mapping method in case there's some b0rkage with a
2525
* particular EFI implementation (haha, it is hard to hold up the

arch/x86/include/asm/irq.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ extern void fixup_irqs(void);
3030

3131
#ifdef CONFIG_HAVE_KVM
3232
extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void));
33+
extern __visible void smp_kvm_posted_intr_ipi(struct pt_regs *regs);
34+
extern __visible void smp_kvm_posted_intr_wakeup_ipi(struct pt_regs *regs);
35+
extern __visible void smp_kvm_posted_intr_nested_ipi(struct pt_regs *regs);
3336
#endif
3437

3538
extern void (*x86_platform_ipi_callback)(void);
@@ -41,9 +44,13 @@ extern __visible unsigned int do_IRQ(struct pt_regs *regs);
4144

4245
extern void init_ISA_irqs(void);
4346

47+
extern void __init init_IRQ(void);
48+
4449
#ifdef CONFIG_X86_LOCAL_APIC
4550
void arch_trigger_cpumask_backtrace(const struct cpumask *mask,
4651
bool exclude_self);
52+
53+
extern __visible void smp_x86_platform_ipi(struct pt_regs *regs);
4754
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
4855
#endif
4956

arch/x86/include/asm/irq_work.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ static inline bool arch_irq_work_has_interrupt(void)
1010
return boot_cpu_has(X86_FEATURE_APIC);
1111
}
1212
extern void arch_irq_work_raise(void);
13+
extern __visible void smp_irq_work_interrupt(struct pt_regs *regs);
1314
#else
1415
static inline bool arch_irq_work_has_interrupt(void)
1516
{

arch/x86/include/asm/kvm_para.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ void kvm_async_pf_task_wait(u32 token, int interrupt_kernel);
9292
void kvm_async_pf_task_wake(u32 token);
9393
u32 kvm_read_and_reset_pf_reason(void);
9494
extern void kvm_disable_steal_time(void);
95+
void do_async_page_fault(struct pt_regs *regs, unsigned long error_code);
9596

9697
#ifdef CONFIG_PARAVIRT_SPINLOCKS
9798
void __init kvm_spinlock_init(void);

arch/x86/include/asm/paravirt.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ struct static_key;
2626
extern struct static_key paravirt_steal_enabled;
2727
extern struct static_key paravirt_steal_rq_enabled;
2828

29+
__visible void __native_queued_spin_unlock(struct qspinlock *lock);
30+
bool pv_is_native_spin_unlock(void);
31+
__visible bool __native_vcpu_is_preempted(long cpu);
32+
bool pv_is_native_vcpu_is_preempted(void);
33+
2934
static inline u64 paravirt_steal_clock(int cpu)
3035
{
3136
return PVOP_CALL1(u64, time.steal_clock, cpu);

arch/x86/include/asm/reboot.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ void __noreturn machine_real_restart(unsigned int type);
2626
#define MRR_APM 1
2727

2828
typedef void (*nmi_shootdown_cb)(int, struct pt_regs*);
29+
void nmi_panic_self_stop(struct pt_regs *regs);
2930
void nmi_shootdown_cpus(nmi_shootdown_cb callback);
3031
void run_crash_ipi_callback(struct pt_regs *regs);
3132

arch/x86/include/asm/setup.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ extern unsigned long saved_video_mode;
4646

4747
extern void reserve_standard_io_resources(void);
4848
extern void i386_reserve_resources(void);
49+
extern unsigned long __startup_64(unsigned long physaddr, struct boot_params *bp);
50+
extern unsigned long __startup_secondary_64(void);
51+
extern int early_make_pgtable(unsigned long address);
4952

5053
#ifdef CONFIG_X86_INTEL_MID
5154
extern void x86_intel_mid_early_setup(void);

arch/x86/include/asm/sighandling.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@ void signal_fault(struct pt_regs *regs, void __user *frame, char *where);
1717
int setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
1818
struct pt_regs *regs, unsigned long mask);
1919

20+
21+
#ifdef CONFIG_X86_X32_ABI
22+
asmlinkage long sys32_x32_rt_sigreturn(void);
23+
#endif
24+
2025
#endif /* _ASM_X86_SIGHANDLING_H */

arch/x86/include/asm/smp.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,12 @@ void x86_idle_thread_init(unsigned int cpu, struct task_struct *idle);
148148

149149
void smp_store_boot_cpu_info(void);
150150
void smp_store_cpu_info(int id);
151+
152+
asmlinkage __visible void smp_reboot_interrupt(void);
153+
__visible void smp_reschedule_interrupt(struct pt_regs *regs);
154+
__visible void smp_call_function_interrupt(struct pt_regs *regs);
155+
__visible void smp_call_function_single_interrupt(struct pt_regs *r);
156+
151157
#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu)
152158
#define cpu_acpi_id(cpu) per_cpu(x86_cpu_to_acpiid, cpu)
153159

arch/x86/include/asm/trace/exceptions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ DEFINE_PAGE_FAULT_EVENT(page_fault_user);
4545
DEFINE_PAGE_FAULT_EVENT(page_fault_kernel);
4646

4747
#undef TRACE_INCLUDE_PATH
48+
#undef TRACE_INCLUDE_FILE
4849
#define TRACE_INCLUDE_PATH .
4950
#define TRACE_INCLUDE_FILE exceptions
5051
#endif /* _TRACE_PAGE_FAULT_H */

arch/x86/include/asm/trace/irq_vectors.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ TRACE_EVENT(vector_free_moved,
389389
#endif /* CONFIG_X86_LOCAL_APIC */
390390

391391
#undef TRACE_INCLUDE_PATH
392+
#undef TRACE_INCLUDE_FILE
392393
#define TRACE_INCLUDE_PATH .
393394
#define TRACE_INCLUDE_FILE irq_vectors
394395
#endif /* _TRACE_IRQ_VECTORS_H */

arch/x86/include/asm/traps.h

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -61,34 +61,38 @@ asmlinkage void xen_machine_check(void);
6161
asmlinkage void xen_simd_coprocessor_error(void);
6262
#endif
6363

64-
dotraplinkage void do_divide_error(struct pt_regs *, long);
65-
dotraplinkage void do_debug(struct pt_regs *, long);
66-
dotraplinkage void do_nmi(struct pt_regs *, long);
67-
dotraplinkage void do_int3(struct pt_regs *, long);
68-
dotraplinkage void do_overflow(struct pt_regs *, long);
69-
dotraplinkage void do_bounds(struct pt_regs *, long);
70-
dotraplinkage void do_invalid_op(struct pt_regs *, long);
71-
dotraplinkage void do_device_not_available(struct pt_regs *, long);
72-
dotraplinkage void do_coprocessor_segment_overrun(struct pt_regs *, long);
73-
dotraplinkage void do_invalid_TSS(struct pt_regs *, long);
74-
dotraplinkage void do_segment_not_present(struct pt_regs *, long);
75-
dotraplinkage void do_stack_segment(struct pt_regs *, long);
64+
dotraplinkage void do_divide_error(struct pt_regs *regs, long error_code);
65+
dotraplinkage void do_debug(struct pt_regs *regs, long error_code);
66+
dotraplinkage void do_nmi(struct pt_regs *regs, long error_code);
67+
dotraplinkage void do_int3(struct pt_regs *regs, long error_code);
68+
dotraplinkage void do_overflow(struct pt_regs *regs, long error_code);
69+
dotraplinkage void do_bounds(struct pt_regs *regs, long error_code);
70+
dotraplinkage void do_invalid_op(struct pt_regs *regs, long error_code);
71+
dotraplinkage void do_device_not_available(struct pt_regs *regs, long error_code);
72+
dotraplinkage void do_coprocessor_segment_overrun(struct pt_regs *regs, long error_code);
73+
dotraplinkage void do_invalid_TSS(struct pt_regs *regs, long error_code);
74+
dotraplinkage void do_segment_not_present(struct pt_regs *regs, long error_code);
75+
dotraplinkage void do_stack_segment(struct pt_regs *regs, long error_code);
7676
#ifdef CONFIG_X86_64
77-
dotraplinkage void do_double_fault(struct pt_regs *, long);
77+
dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code);
78+
asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs);
79+
asmlinkage __visible notrace
80+
struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s);
81+
void __init trap_init(void);
7882
#endif
79-
dotraplinkage void do_general_protection(struct pt_regs *, long);
80-
dotraplinkage void do_page_fault(struct pt_regs *, unsigned long);
81-
dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *, long);
82-
dotraplinkage void do_coprocessor_error(struct pt_regs *, long);
83-
dotraplinkage void do_alignment_check(struct pt_regs *, long);
83+
dotraplinkage void do_general_protection(struct pt_regs *regs, long error_code);
84+
dotraplinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code);
85+
dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *regs, long error_code);
86+
dotraplinkage void do_coprocessor_error(struct pt_regs *regs, long error_code);
87+
dotraplinkage void do_alignment_check(struct pt_regs *regs, long error_code);
8488
#ifdef CONFIG_X86_MCE
85-
dotraplinkage void do_machine_check(struct pt_regs *, long);
89+
dotraplinkage void do_machine_check(struct pt_regs *regs, long error_code);
8690
#endif
87-
dotraplinkage void do_simd_coprocessor_error(struct pt_regs *, long);
91+
dotraplinkage void do_simd_coprocessor_error(struct pt_regs *regs, long error_code);
8892
#ifdef CONFIG_X86_32
89-
dotraplinkage void do_iret_error(struct pt_regs *, long);
93+
dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code);
9094
#endif
91-
dotraplinkage void do_mce(struct pt_regs *, long);
95+
dotraplinkage void do_mce(struct pt_regs *regs, long error_code);
9296

9397
static inline int get_si_code(unsigned long condition)
9498
{
@@ -104,11 +108,16 @@ extern int panic_on_unrecovered_nmi;
104108

105109
void math_emulate(struct math_emu_info *);
106110
#ifndef CONFIG_X86_32
107-
asmlinkage void smp_thermal_interrupt(void);
108-
asmlinkage void smp_threshold_interrupt(void);
109-
asmlinkage void smp_deferred_error_interrupt(void);
111+
asmlinkage void smp_thermal_interrupt(struct pt_regs *regs);
112+
asmlinkage void smp_threshold_interrupt(struct pt_regs *regs);
113+
asmlinkage void smp_deferred_error_interrupt(struct pt_regs *regs);
110114
#endif
111115

116+
void smp_apic_timer_interrupt(struct pt_regs *regs);
117+
void smp_spurious_interrupt(struct pt_regs *regs);
118+
void smp_error_interrupt(struct pt_regs *regs);
119+
asmlinkage void smp_irq_move_cleanup_interrupt(void);
120+
112121
extern void ist_enter(struct pt_regs *regs);
113122
extern void ist_exit(struct pt_regs *regs);
114123
extern void ist_begin_non_atomic(struct pt_regs *regs);

arch/x86/include/asm/tsc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ extern struct system_counterval_t convert_art_ns_to_tsc(u64 art_ns);
3535

3636
extern void tsc_early_init(void);
3737
extern void tsc_init(void);
38+
extern unsigned long calibrate_delay_is_known(void);
3839
extern void mark_tsc_unstable(char *reason);
3940
extern int unsynchronized_tsc(void);
4041
extern int check_tsc_unstable(void);

arch/x86/kernel/acpi/boot.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -848,7 +848,7 @@ EXPORT_SYMBOL(acpi_unregister_ioapic);
848848
/**
849849
* acpi_ioapic_registered - Check whether IOAPIC assoicatied with @gsi_base
850850
* has been registered
851-
* @handle: ACPI handle of the IOAPIC deivce
851+
* @handle: ACPI handle of the IOAPIC device
852852
* @gsi_base: GSI base associated with the IOAPIC
853853
*
854854
* Assume caller holds some type of lock to serialize acpi_ioapic_registered()

arch/x86/kernel/aperture_64.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -264,18 +264,23 @@ static int __init parse_gart_mem(char *p)
264264
}
265265
early_param("gart_fix_e820", parse_gart_mem);
266266

267+
/*
268+
* With kexec/kdump, if the first kernel doesn't shut down the GART and the
269+
* second kernel allocates a different GART region, there might be two
270+
* overlapping GART regions present:
271+
*
272+
* - the first still used by the GART initialized in the first kernel.
273+
* - (sub-)set of it used as normal RAM by the second kernel.
274+
*
275+
* which leads to memory corruptions and a kernel panic eventually.
276+
*
277+
* This can also happen if the BIOS has forgotten to mark the GART region
278+
* as reserved.
279+
*
280+
* Try to update the e820 map to mark that new region as reserved.
281+
*/
267282
void __init early_gart_iommu_check(void)
268283
{
269-
/*
270-
* in case it is enabled before, esp for kexec/kdump,
271-
* previous kernel already enable that. memset called
272-
* by allocate_aperture/__alloc_bootmem_nopanic cause restart.
273-
* or second kernel have different position for GART hole. and new
274-
* kernel could use hole as RAM that is still used by GART set by
275-
* first kernel
276-
* or BIOS forget to put that in reserved.
277-
* try to update e820 to make that region as reserved.
278-
*/
279284
u32 agp_aper_order = 0;
280285
int i, fix, slot, valid_agp = 0;
281286
u32 ctl;

arch/x86/kernel/apic/apic.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include <asm/mpspec.h>
4545
#include <asm/i8259.h>
4646
#include <asm/proto.h>
47+
#include <asm/traps.h>
4748
#include <asm/apic.h>
4849
#include <asm/io_apic.h>
4950
#include <asm/desc.h>

arch/x86/kernel/apic/apic_flat_64.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
99
* James Cleverdon.
1010
*/
11+
#include <linux/acpi.h>
1112
#include <linux/errno.h>
1213
#include <linux/threads.h>
1314
#include <linux/cpumask.h>
@@ -16,13 +17,13 @@
1617
#include <linux/ctype.h>
1718
#include <linux/hardirq.h>
1819
#include <linux/export.h>
20+
1921
#include <asm/smp.h>
20-
#include <asm/apic.h>
2122
#include <asm/ipi.h>
23+
#include <asm/apic.h>
24+
#include <asm/apic_flat_64.h>
2225
#include <asm/jailhouse_para.h>
2326

24-
#include <linux/acpi.h>
25-
2627
static struct apic apic_physflat;
2728
static struct apic apic_flat;
2829

arch/x86/kernel/apic/vector.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <linux/slab.h>
1919
#include <asm/irqdomain.h>
2020
#include <asm/hw_irq.h>
21+
#include <asm/traps.h>
2122
#include <asm/apic.h>
2223
#include <asm/i8259.h>
2324
#include <asm/desc.h>

0 commit comments

Comments
 (0)