• Vivek Goyal's avatar
    [PATCH] i386 kdump boot cpu physical apicid fix · be0d03f1
    Vivek Goyal authored
    o Kdump second kernel boot fails after a system crash if second kernel
      is UP and acpi=off and if crash occurred on a non-boot cpu.
    
    o Issue here is that MP tables report boot cpu lapic id as 0 but second
      kernel is booting on a different processor and MP table data is stale
      in this context. Hence apic_id_registered() check fails in setup_local_APIC()
      when called from APIC_init_uniprocessor().
    
    o Problem is not seen if ACPI is enabled as in that case
      boot_cpu_physical_apicid is read from the LAPIC.
    
    o Problem is not seen with SMP kernels as well because in this case also
      boot_cpu_physical_apicid is read from LAPIC. (smp_boot_cpus()).
    
    o The problem is fixed by reading boot_cpu_physical_apicid from LAPIC
      if it is a UP kernel and CRASH_DUMP is enabled.
    Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    be0d03f1
apic.c 33.5 KB