]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
PCI: Remove struct pci_devres.enabled status bit
authorPhilipp Stanner <pstanner@redhat.com>
Thu, 13 Jun 2024 11:50:20 +0000 (13:50 +0200)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Wed, 10 Jul 2024 04:20:06 +0000 (04:20 +0000)
The struct pci_devres has a separate boolean to track whether a device is
enabled. That, however, can easily be tracked in an agnostic manner through
the function pci_is_enabled().

Using it allows for simplifying the PCI devres implementation.

Replace the separate 'enabled' status bit from struct pci_devres with
calls to pci_is_enabled() at the appropriate places.

Link: https://lore.kernel.org/r/20240613115032.29098-8-pstanner@redhat.com
Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/devres.c
drivers/pci/pci.c
drivers/pci/pci.h

index e4c37fcb12df3187baa7951feac6e628afdc5faf..4ac662efc6acb316bb1d5d50e25c5f37ccfa2148 100644 (file)
@@ -407,7 +407,7 @@ static void pcim_release(struct device *gendev, void *res)
        if (this->restore_intx)
                pci_intx(dev, this->orig_intx);
 
-       if (this->enabled && !this->pinned)
+       if (pci_is_enabled(dev) && !this->pinned)
                pci_disable_device(dev);
 }
 
@@ -450,14 +450,11 @@ int pcim_enable_device(struct pci_dev *pdev)
        dr = get_pci_dr(pdev);
        if (unlikely(!dr))
                return -ENOMEM;
-       if (dr->enabled)
-               return 0;
 
        rc = pci_enable_device(pdev);
-       if (!rc) {
+       if (!rc)
                pdev->is_managed = 1;
-               dr->enabled = 1;
-       }
+
        return rc;
 }
 EXPORT_SYMBOL(pcim_enable_device);
@@ -475,7 +472,7 @@ void pcim_pin_device(struct pci_dev *pdev)
        struct pci_devres *dr;
 
        dr = find_pci_dr(pdev);
-       WARN_ON(!dr || !dr->enabled);
+       WARN_ON(!dr || !pci_is_enabled(pdev));
        if (dr)
                dr->pinned = 1;
 }
index 1e258c98df1afb46aaff9b92dcbd6e73b7d76f22..a0fad5990f03cffda6d1819e1982b278e7af935c 100644 (file)
@@ -2218,12 +2218,6 @@ void pci_disable_enabled_device(struct pci_dev *dev)
  */
 void pci_disable_device(struct pci_dev *dev)
 {
-       struct pci_devres *dr;
-
-       dr = find_pci_dr(dev);
-       if (dr)
-               dr->enabled = 0;
-
        dev_WARN_ONCE(&dev->dev, atomic_read(&dev->enable_cnt) <= 0,
                      "disabling already-disabled device");
 
index 37894852c2a044f8c9bd41c0dbc8d10d8d864b04..4f220bbbd4ae425994434fb0c1ead0a68e16de64 100644 (file)
@@ -821,7 +821,6 @@ static inline pci_power_t mid_pci_get_power_state(struct pci_dev *pdev)
  * then remove them from here.
  */
 struct pci_devres {
-       unsigned int enabled:1;
        unsigned int pinned:1;
        unsigned int orig_intx:1;
        unsigned int restore_intx:1;