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 <[email protected]>
> Reported-by: Michael Kelley <[email protected]>
> ---
>  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;
>       }

Reply via email to