Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI/ACPI: Clarify message about _OSC failure

This message:

acpi PNP0A08:02: _OSC failed (AE_NOT_FOUND); disabling ASPM

is alarming and slightly misleading. Per the PCI Firmware Spec, r3.2, sec
4.5.1, _OSC is required for PCIe hierarchies. If _OSC is absent or fails,
the OS must not attempt to use any of the features defined for _OSC. That
includes native hotplug, native PME, AER, and other things as well as ASPM.

Rephrase the message to:

acpi PNP0A08:02: _OSC: platform retains control of PCIe features (AE_NOT_FOUND)

Previous discussion at https://lore.kernel.org/r/20200602223618.GA845676@bjorn-Precision-5520/

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Sinan Kaya <okaya@kernel.org>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Yicong Yang <yangyicong@hisilicon.com>

+3 -4
+3 -4
drivers/acpi/pci_root.c
··· 441 441 if ((status == AE_NOT_FOUND) && !is_pcie) 442 442 return; 443 443 444 - dev_info(&device->dev, "_OSC failed (%s)%s\n", 445 - acpi_format_exception(status), 446 - pcie_aspm_support_enabled() ? "; disabling ASPM" : ""); 444 + dev_info(&device->dev, "_OSC: platform retains control of PCIe features (%s)\n", 445 + acpi_format_exception(status)); 447 446 return; 448 447 } 449 448 ··· 498 499 } else { 499 500 decode_osc_control(root, "OS requested", requested); 500 501 decode_osc_control(root, "platform willing to grant", control); 501 - dev_info(&device->dev, "_OSC failed (%s); disabling ASPM\n", 502 + dev_info(&device->dev, "_OSC: platform retains control of PCIe features (%s)\n", 502 503 acpi_format_exception(status)); 503 504 504 505 /*