linux_dsm_epyc7002/drivers/acpi
Baoquan He c401eb8ee3 ACPI / processor: Check if LAPIC is present during initialization
In acpi_processor_get_info(), ACPI processor info is initialized including
ID, namely CPU index. Currently, on a UP system running an SMP kerenl with
no LAPIC in the MADT, cpu0_initialized is checked to decide whether or not
the CPU has been initialized.

However, this check may not be sufficient for kdump kernels. Most of time
only 1 CPU is supported because of known problems in kdump kernels. So say
the multiple CPUs are present in the boot kernel and a crash happens on
one specific CPU, say CPU2. Then it jumps into the kdump kernel with
"nr_cpus=1" in the command line. In this situation, the kdump kernel
will reuse the ACPI resources from the crashed kernel directly. That
means all LAPIC instances are enabled in the MADT while only one CPU is
in use.  In the kdump kernel, x86_cpu_to_apicid contains the correct APIC
ID and it's related to the CPU ID. If cpu0_initialized is checked only, 0
will be used as the CPU index instead of that APIC ID, which is not
correct.

In addition to checking cpu0_initialized, check acpi_lapic. If acpi_lapic
is 0, then no LAPIC is available from the MADT and the system should be
treated as a UP one without a LAPIC (that is, assign 0 to the CPU index).
Otherwise, use the original (valid) CPU index.

Signed-off-by: Baoquan He <bhe@redhat.com>
[rjw: Subject and changelog]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-05-16 16:27:35 +02:00
..
acpica ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses. 2014-05-13 16:37:39 +02:00
apei ACPI / APEI: Remove X86 redundant dependency for APEI GHES. 2014-02-18 01:29:45 +01:00
ac.c ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" 2014-05-08 00:37:28 +02:00
acpi_cmos_rtc.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
acpi_extlog.c ACPI and power management updates for 3.14-rc1 2014-01-24 15:51:02 -08:00
acpi_ipmi.c ACPI / IPMI: Cleanup coding styles 2013-09-30 19:46:13 +02:00
acpi_lpss.c Merge branches 'pm-qos', 'pm-domains' and 'pm-drivers' 2014-03-20 13:25:36 +01:00
acpi_memhotplug.c ACPI / memhotplug: add parameter to disable memory hotplug 2014-01-16 01:43:49 +01:00
acpi_pad.c ACPI / PAD: use acpi_evaluate_ost() to replace open-coded version 2014-02-21 00:27:47 +01:00
acpi_platform.c ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" 2014-05-08 00:37:28 +02:00
acpi_processor.c ACPI / processor: Check if LAPIC is present during initialization 2014-05-16 16:27:35 +02:00
battery.c ACPI: Revert "ACPI / Battery: Remove battery's proc directory" 2014-05-06 01:54:39 +02:00
battery.h ACPI / battery: move some ACPI_BATTERY_* definitions to header 2014-03-19 01:57:46 +01:00
bgrt.c acpi: bgrt: fix build error due to attribute change 2013-08-22 08:34:39 -07:00
blacklist.c ACPI / blacklist: Add dmi_enable_osi_linux quirk for Asus EEE PC 1015PX 2014-05-08 00:35:50 +02:00
bus.c ACPI / notify: Do not block unknown type notifications in root handler 2014-04-24 19:27:49 +02:00
button.c ACPI / button: Add ACPI Button event via netlink routine 2014-03-19 02:06:15 +01:00
cm_sbs.c ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" 2014-05-06 01:52:09 +02:00
container.c Merge branches 'acpi-cleanup', 'acpi-thermal', 'acpi-pci', 'acpi-lpss' and 'acpi-button' 2014-03-20 13:20:47 +01:00
custom_method.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
debugfs.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
device_pm.c ACPI / PM: Resume runtime-suspended devices later during system suspend 2014-03-04 00:17:48 +01:00
dock.c ACPI / dock: Drop dock_device_ids[] table 2014-04-07 14:11:35 +02:00
ec_sys.c ACPI / EC: Mark the function acpi_ec_add_debugfs() as static in ec_sys.c 2014-01-06 00:13:22 +01:00
ec.c ACPI / EC: Process rather than discard events in acpi_ec_clear 2014-04-29 23:07:38 +02:00
event.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
fan.c ACPI / fan: do nothing in suspend and poweroff callback 2014-02-20 21:42:09 +01:00
glue.c ACPI / scan: Add bind/unbind callbacks to struct acpi_scan_handler 2014-02-11 00:35:46 +01:00
hed.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
internal.h ACPI / hotplug: Rework deferred execution of acpi_device_hotplug() 2014-03-05 01:26:35 +01:00
Kconfig ACPI / proc: Do not say when /proc interfaces will be deleted in Kconfig 2014-05-10 13:51:36 +02:00
Makefile ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" 2014-05-06 01:52:09 +02:00
numa.c ACPI / numa: Use __weak, not the gcc-specific version 2014-02-03 10:39:43 -07:00
nvs.c ACPI / NVS: Include appropriate header file in nvs.c 2014-01-06 00:13:22 +01:00
osl.c ACPI: Clean up memory allocations 2014-04-04 16:23:33 +02:00
pci_irq.c ACPI / PCI: Do not call ISA-specific code if ISA is not supported 2014-02-20 21:37:42 +01:00
pci_link.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
pci_root.c Merge branches 'acpi-cleanup', 'acpi-thermal', 'acpi-pci', 'acpi-lpss' and 'acpi-button' 2014-03-20 13:20:47 +01:00
pci_slot.c ACPI / PCI: Include appropriate header file in pci_slot.c 2014-01-06 00:13:22 +01:00
power.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
proc.c ACPI / proc: remove unneeded NULL check 2014-02-05 01:06:21 +01:00
processor_core.c Merge branches 'acpi-processor' and 'pnp' 2014-04-01 22:09:50 +02:00
processor_driver.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
processor_idle.c ACPI and power management updates for 3.14-rc1 2014-01-24 15:51:02 -08:00
processor_perflib.c ACPI / processor: use acpi_evaluate_ost() to replace open-coded version 2014-02-21 00:27:47 +01:00
processor_thermal.c ACPI: correct minor typos 2013-12-07 01:38:45 +01:00
processor_throttling.c ACPI / processor: Rework processor throttling with work_on_cpu() 2014-02-27 00:21:05 +01:00
reboot.c Revert "ACPI: ignore FADT reset-reg-sup flag" 2012-04-20 11:19:35 -07:00
resource.c ACPI / resources: ignore invalid ACPI device resources 2014-03-01 22:46:05 +01:00
sbs.c ACPI / battery: move some ACPI_BATTERY_* definitions to header 2014-03-19 01:57:46 +01:00
sbshc.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
sbshc.h
scan.c Merge branches 'pm-qos', 'pm-domains' and 'pm-drivers' 2014-03-20 13:25:36 +01:00
sleep.c ACPI / sleep: Add extra checks for HW Reduced ACPI mode sleep states 2014-03-13 22:11:39 +01:00
sleep.h ACPI: Drop power resources driver 2013-01-17 14:11:06 +01:00
sysfs.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
tables.c ACPI / tables: Replace printk with pr_* 2014-03-02 01:34:16 +01:00
thermal.c ACPI / thermal: Fix wrong variable usage in debug statement 2014-04-07 14:00:49 +02:00
utils.c ACPI: Clean up memory allocations 2014-04-04 16:23:33 +02:00
video_detect.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
video.c ACPI / video: correct DMI tag for Dell Inspiron 7520 2014-05-13 14:10:24 +02:00
wakeup.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00