• Eric W. Biederman's avatar
    [PATCH] i386: move apic init in init_IRQs · f2b36db6
    Eric W. Biederman authored
    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: default avatarEric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    f2b36db6
i8259.c 11 KB