On Thu, 2018-08-09 at 18:46 +0000, Sinan Kaya wrote: > 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. > > Signed-off-by: Sinan Kaya <okaya@xxxxxxxxxx> > Reported-by: Michael Kelley <mikelley@xxxxxxxxxxxxx> > --- > drivers/acpi/pci_root.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c [] > @@ -455,8 +455,13 @@ 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)); > + char *aspm_msg = ""; > + > + if (pcie_aspm_support_enabled()) > + aspm_msg = "; disabling ASPM"; > + > + dev_info(&device->dev, "_OSC failed (%s) %s\n", > + acpi_format_exception(status), aspm_msg); I think this would read better not using a temporary and using a ternary instead. dev_info(&device->dev, "_OSC failed (%s)%s\n", acpi_format_exception(status), pcie_aspm_support_enabled() ? "; disabling ASPM" : ""); > *no_aspm = 1; > return; > }