• Andreas Herrmann's avatar
    x86: fix cpu-hotplug regression · 90367556
    Andreas Herrmann authored
    Commit d435d862
    ("cpu hotplug: mce: fix cpu hotplug error handling")
    changed the error handling in mce_cpu_callback.
    
    In cases where not all CPUs are brought up during
    boot (e.g. using maxcpus and additional_cpus parameters)
    mce_cpu_callback now returns NOTFIY_BAD because
    for such CPUs cpu_data is not completely filled when
    the notifier is called. Thus mce_create_device fails right
    at its beginning:
    
            if (!mce_available(&cpu_data[cpu]))
                    return -EIO;
    
    As a quick fix I suggest to check boot_cpu_data for MCE.
    
    To reproduce this regression:
    
    (1) boot with maxcpus=2 addtional_cpus=2 on a 4 CPU x86-64 system
    (2) # echo 1 >/sys/devices/system/cpu/cpu2/online
      -bash: echo: write error: Invalid argument
    
    dmesg shows:
    
    _cpu_up: attempt to bring up CPU 2 failed
    Signed-off-by: default avatarAndreas Herrmann <andreas.herrmann3@amd.com>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    90367556
mce_64.c 21.1 KB