diff mbox series

[1/2] PCI/ACPI: correct error message for ASPM disabling

Message ID 1533840383-7841-1-git-send-email-okaya@kernel.org (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show
Series [1/2] PCI/ACPI: correct error message for ASPM disabling | expand

Commit Message

Sinan Kaya Aug. 9, 2018, 6:46 p.m. UTC
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@kernel.org>
Reported-by: Michael Kelley <mikelley@microsoft.com>
---
 drivers/acpi/pci_root.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Joe Perches Aug. 10, 2018, 12:27 a.m. UTC | #1
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@kernel.org>
> Reported-by: Michael Kelley <mikelley@microsoft.com>
> ---
>  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;
>  	}
Sinan Kaya Aug. 10, 2018, 2:15 a.m. UTC | #2
On 8/9/2018 8:27 PM, Joe Perches wrote:
> I think this would read better not using a temporary and
> using a ternary instead.

Makes sense.
diff mbox series

Patch

diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 7433035..9d738e2 100644
--- 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);
 		*no_aspm = 1;
 		return;
 	}