From: Thomas Renninger Subject: Do not try to set up acpi processor stuff on cores exceeding maxcpus= References: bnc#601520 Patch-Mainline: Not yet Signed-off-by: Thomas Renninger Automatically created from "patches.fixes/acpi_processor_check_maxcpus.patch" by xen-port-patches.py --- head-2010-05-25.orig/drivers/acpi/processor_driver.c 2010-05-25 09:25:03.000000000 +0200 +++ head-2010-05-25/drivers/acpi/processor_driver.c 2010-05-25 09:51:32.000000000 +0200 @@ -448,6 +448,11 @@ static int acpi_processor_get_info(struc return -ENODEV; } } +#if defined(CONFIG_SMP) && defined(CONFIG_PROCESSOR_EXTERNAL_CONTROL) + if (pr->id >= setup_max_cpus && pr->id > 0) + pr->id = -1; +#endif + /* * On some boxes several processors use the same processor bus id. * But they are located in different scope. For example: @@ -597,8 +602,11 @@ static int __cpuinit acpi_processor_add( } #ifdef CONFIG_SMP - if (pr->id >= setup_max_cpus && pr->id != 0) - return 0; + if (pr->id >= setup_max_cpus && pr->id != 0) { + if (!processor_cntl_external()) + return 0; + WARN_ON(pr->id != -1); + } #endif BUG_ON(!processor_cntl_external() &&