PCI/ACPI: Fix acpi_pci_set_power_state() debug message
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 25 Mar 2021 18:57:51 +0000 (19:57 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 1 Apr 2021 19:54:43 +0000 (14:54 -0500)
If PCI_D3cold is passed to acpi_pci_set_power_state() as the second
argument and there is no ACPI D3cold support for the given device, the
debug message will state that the device power state has been changed to
D3cold, while in fact it will be D3hot, because acpi_device_set_power()
falls back to D3hot automatically if D3cold is not supported without
returning an error.

To address this issue, modify the debug message to print the current power
state of the target PCI device's ACPI companion instead of printing the
target power state, which may not reflect the real final power state of the
device.

Link: https://lore.kernel.org/r/4319486.LvFx2qVVIh@kreacher
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Krzysztof WilczyƄski <kw@linux.com>
drivers/pci/pci-acpi.c

index 53502a7..36bc23e 100644 (file)
@@ -1021,7 +1021,7 @@ static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state)
 
        if (!error)
                pci_dbg(dev, "power state changed by ACPI to %s\n",
-                        acpi_power_state_string(state_conv[state]));
+                       acpi_power_state_string(adev->power.state));
 
        return error;
 }