]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
PCI: Increment PM usage counter when probing reset methods
authorAlex Williamson <alex.williamson@redhat.com>
Tue, 22 Apr 2025 23:05:32 +0000 (17:05 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 23 Apr 2025 21:06:45 +0000 (16:06 -0500)
We can get different results probing reset methods for a device depending
on its power state.  For example, reading the PM control register of a
device in D3cold will always indicate NoSoftRst+ because we get ~0 data
when the config read fails on PCI, preventing us from correctly probing PM
reset support.

Increment the PM usage counter before any probes and use the cleanup __free
facility to automatically drop the usage counter out of scope.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20250422230534.2295291-3-alex.williamson@redhat.com
drivers/pci/pci-sysfs.c

index c6cda56ca52ccf1a15e4e48cebdc176def143ab1..71a36f57ef57a7546cedfc22a1a43fec64d08c23 100644 (file)
@@ -1475,6 +1475,9 @@ static ssize_t reset_method_store(struct device *dev,
                return count;
        }
 
+       pm_runtime_get_sync(dev);
+       struct device *pmdev __free(pm_runtime_put) = dev;
+
        if (sysfs_streq(buf, "default")) {
                pci_init_reset_methods(pdev);
                return count;