On Wed, May 23, 2018 at 12:01 AM, Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > On Fri, May 18, 2018 at 10:17:42AM +0200, Rafael J. Wysocki wrote: >> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> >> >> The state_saved flag should not be cleared in pci_pm_suspend() if the >> given device is going to remain suspended, or the device's config >> space will not be restored properly during the subsequent resume. >> >> Namely, if the device is going to stay in suspend, both the late >> and noirq callbacks return early for it, so if its state_saved flag >> is cleared in pci_pm_suspend(), it will remain unset throughout the >> remaining part of suspend and resume and pci_restore_state() called >> for the device going forward will return without doing anything. >> >> For this reason, change pci_pm_suspend() to only clear state_saved >> if the given device is not going to remain suspended. [This is >> analogous to what commit ae860a19f37c (PCI / PM: Do not clear >> state_saved in pci_pm_freeze() when smart suspend is set) did for >> hibernation.] >> >> Fixes: c4b65157aeef (PCI / PM: Take SMART_SUSPEND driver flag into account) >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > > Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > I assume you'll take this one, too. Yes, I will, thank you!