[PATCH] i386: move apic init in init_IRQs
All kinds of ugliness exists because we don't initialize the apics during init_IRQs. - We calibrate jiffies in non apic mode even when we are using apics. - We have to have special code to initialize the apics when non-smp. - The legacy i8259 must exist and be setup correctly, even when we won't use it past initialization. - The kexec on panic code must restore the state of the io_apics. - init/main.c needs a special case for !smp smp_init on x86 In addition to pure code movement I needed a couple of non-obvious changes: - Move setup_boot_APIC_clock into APIC_late_time_init for simplicity. - Use cpu_khz to generate a better approximation of loops_per_jiffies so I can verify the timer interrupt is working. - Call setup_apic_nmi_watchdog again after cpu_khz is initialized on the boot cpu. Signed-off-by:Eric W. Biederman <ebiederm@xmission.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
Showing
- arch/i386/kernel/apic.c 64 additions, 17 deletionsarch/i386/kernel/apic.c
- arch/i386/kernel/i8259.c 4 additions, 0 deletionsarch/i386/kernel/i8259.c
- arch/i386/kernel/io_apic.c 5 additions, 1 deletionarch/i386/kernel/io_apic.c
- arch/i386/kernel/smpboot.c 16 additions, 52 deletionsarch/i386/kernel/smpboot.c
- arch/i386/kernel/time.c 11 additions, 1 deletionarch/i386/kernel/time.c
- include/asm-i386/apic.h 2 additions, 1 deletioninclude/asm-i386/apic.h
- include/asm-i386/hw_irq.h 1 addition, 0 deletionsinclude/asm-i386/hw_irq.h
- include/asm-i386/mach-default/smpboot_hooks.h 0 additions, 15 deletionsinclude/asm-i386/mach-default/smpboot_hooks.h
- include/asm-i386/mach-visws/smpboot_hooks.h 0 additions, 7 deletionsinclude/asm-i386/mach-visws/smpboot_hooks.h
- init/main.c 0 additions, 11 deletionsinit/main.c
Loading
Please register or sign in to comment