Re: [PATCH v2 2/7] PCI: ACPI: PM: Do not use pci_platform_pm_ops for ACPI

From: Rafael J. Wysocki
Date: Wed Sep 29 2021 - 15:13:24 EST


On Wed, Sep 29, 2021 at 9:08 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
>
> On Mon, Sep 20, 2021 at 09:17:08PM +0200, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> >
> > Using struct pci_platform_pm_ops for ACPI adds unnecessary
> > indirection to the interactions between the PCI core and ACPI PM,
> > which is also subject to retpolines.
> >
> > Moreover, it is not particularly clear from the current code that,
> > as far as PCI PM is concerned, "platform" really means just ACPI
> > except for the special casess when Intel MID PCI PM is used or when
> > ACPI support is disabled (through the kernel config or command line,
> > or because there are no usable ACPI tables on the system).
> >
> > To address the above, rework the PCI PM code to invoke ACPI PM
> > functions directly as needed and drop the acpi_pci_platform_pm
> > object that is not necessary any more.
> >
> > Accordingly, update some of the ACPI PM functions in question to do
> > extra checks in case the ACPI support is disabled (which previously
> > was taken care of by avoiding to set the pci_platform_ops pointer
> > in those cases).
> >
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> This patch as commit 9896a58cdd59 ("PCI: ACPI: PM: Do not use
> pci_platform_pm_ops for ACPI") in -next causes the following build error
> when compiling x86_64 allmodconfig with clang:
>
> drivers/pci/pci-acpi.c:1125:7: error: variable 'adev' is uninitialized when used here [-Werror,-Wuninitialized]
> if (!adev || !acpi_device_power_manageable(adev))
> ^~~~
> drivers/pci/pci-acpi.c:1110:26: note: initialize the variable 'adev' to silence this warning
> struct acpi_device *adev;
> ^
> = NULL
> 1 error generated.
>
> Should the adev assignment be moved up

Yes, thanks!

I'll fix it up in the tree.