PCI/ACPI: Correct error message for ASPM disabling
authorSinan Kaya <okaya@kernel.org>
Fri, 10 Aug 2018 04:32:11 +0000 (04:32 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Nov 2019 17:00:05 +0000 (18:00 +0100)
[ Upstream commit 1ad61b612b95980a4d970c52022aa01dfc0f6068 ]

If _OSC execution fails today for platforms without an _OSC entry, code is
printing a misleading message saying disabling ASPM as follows:

  acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM

We need to ensure that platform supports ASPM to begin with.

Reported-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Sinan Kaya <okaya@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/acpi/pci_root.c

index eb857d6ea1fef04725c28d479e3f3268754f82a3..96911360a28e7270ce2114b04367429736115069 100644 (file)
@@ -454,8 +454,9 @@ static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm)
        decode_osc_support(root, "OS supports", support);
        status = acpi_pci_osc_support(root, support);
        if (ACPI_FAILURE(status)) {
-               dev_info(&device->dev, "_OSC failed (%s); disabling ASPM\n",
-                        acpi_format_exception(status));
+               dev_info(&device->dev, "_OSC failed (%s)%s\n",
+                        acpi_format_exception(status),
+                        pcie_aspm_support_enabled() ? "; disabling ASPM" : "");
                *no_aspm = 1;
                return;
        }