sst-linux/drivers/acpi
Giovanni Gherdovich 9b435afa49 ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid
[ Upstream commit 9e9b893404d43894d69a18dd2fc8fcf1c36abb7e ]

Prior to commit 496121c021 ("ACPI: processor: idle: Allow probing on
platforms with one ACPI C-state"), the acpi_idle driver wouldn't load on
systems without a valid C-State at least as deep as C2.

The behavior was desirable for guests on hypervisors such as VMWare
ESXi, which by default don't have the _CST ACPI method, and set the C2
and C3 latencies to 101 and 1001 microseconds respectively via the FADT,
to signify they're unsupported.

Since the above change though, these virtualized deployments end up
loading acpi_idle, and thus entering the default C1 C-State set by
acpi_processor_get_power_info_default(); this is undesirable for a
system that's communicating to the OS it doesn't want C-States (missing
_CST, and invalid C2/C3 in FADT).

Make acpi_processor_get_power_info_fadt() return -ENODEV in that case,
so that acpi_processor_get_cstate_info() exits early and doesn't set
pr->flags.power = 1.

Fixes: 496121c021 ("ACPI: processor: idle: Allow probing on platforms with one ACPI C-state")
Signed-off-by: Giovanni Gherdovich <ggherdovich@suse.cz>
Reviewed-by: Zhang Rui <rui.zhang@intel.com>
Link: https://patch.msgid.link/20250328143040.9348-1-ggherdovich@suse.cz
[ rjw: Changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-04-10 14:33:38 +02:00
..
acpica ACPICA: events/evxfregn: don't release the ContextMutex that was never acquired 2024-12-19 18:08:56 +01:00
apei APEI: GHES: Have GHES honor the panic= setting 2025-02-21 13:49:32 +01:00
arm64 acpi/arm64: Adjust error handling procedure in gtdt_parse_timer_block() 2024-12-14 19:53:15 +01:00
dptf
nfit acpi: nfit: vmalloc-out-of-bounds Read in acpi_nfit_ctl 2024-12-19 18:08:52 +01:00
numa
pmic ACPI: PMIC: Remove unneeded check in tps68470_pmic_opregion_probe() 2024-10-17 15:20:36 +02:00
x86
ac.c
acpi_adxl.c
acpi_amba.c
acpi_apd.c
acpi_cmos_rtc.c
acpi_configfs.c
acpi_dbg.c
acpi_extlog.c
acpi_fpdt.c
acpi_ipmi.c
acpi_lpat.c
acpi_lpit.c
acpi_lpss.c
acpi_memhotplug.c
acpi_pad.c ACPI: PAD: fix crash in exit_round_robin() 2024-10-17 15:21:36 +02:00
acpi_pcc.c
acpi_platform.c
acpi_pnp.c
acpi_processor.c
acpi_tad.c
acpi_video.c
acpi_watchdog.c
battery.c ACPI: battery: Fix possible crash when unregistering a battery hook 2024-10-17 15:22:08 +02:00
bgrt.c
blacklist.c
bus.c
button.c ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue 2024-11-01 01:56:06 +01:00
container.c
cppc_acpi.c ACPI: CPPC: Fix _CPC register setting issue 2024-12-14 19:53:18 +01:00
custom_method.c
debugfs.c
device_pm.c
device_sysfs.c ACPI: sysfs: validate return type of _STR method 2024-10-17 15:21:21 +02:00
dock.c
ec_sys.c
ec.c ACPI: EC: Do not release locks during operation region accesses 2024-10-17 15:21:37 +02:00
event.c
evged.c
fan_attr.c
fan_core.c ACPI: fan: cleanup resources in the error path of .probe() 2025-02-21 13:49:00 +01:00
fan.h
glue.c
hed.c
internal.h
ioapic.c
irq.c
Kconfig
Makefile
nvs.c
osi.c
osl.c
pci_irq.c
pci_link.c
pci_mcfg.c
pci_root.c
pci_slot.c
pfr_telemetry.c
pfr_update.c
platform_profile.c
power.c
pptt.c
prmt.c ACPI: PRM: Remove unnecessary strict handler address checks 2025-02-21 13:49:47 +01:00
proc.c
processor_core.c
processor_driver.c
processor_idle.c ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid 2025-04-10 14:33:38 +02:00
processor_pdc.c
processor_perflib.c
processor_thermal.c
processor_throttling.c
property.c ACPI: property: Fix return value for nval == 0 in acpi_data_prop_read() 2025-02-21 13:49:37 +01:00
reboot.c
resource.c ACPI: resource: IRQ override for Eluktronics MECH-17 2025-03-28 21:58:50 +01:00
sbs.c
sbshc.c
sbshc.h
scan.c
sleep.c
sleep.h
spcr.c
sysfs.c
tables.c
thermal.c
tiny-power-button.c
utils.c
video_detect.c ACPI: video: Add force_vendor quirk for Panasonic Toughbook CF-18 2024-10-17 15:21:37 +02:00
viot.c
wakeup.c