Skip to content

Commit 77f79ac

Browse files
Philipp Stannerkwilczynski
authored andcommitted
PCI: Remove struct pci_devres.enabled status bit
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/[email protected] Signed-off-by: Philipp Stanner <[email protected]> Signed-off-by: Krzysztof Wilczyński <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]>
1 parent 81fcf28 commit 77f79ac

File tree

3 files changed

+4
-14
lines changed

3 files changed

+4
-14
lines changed

drivers/pci/devres.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ static void pcim_release(struct device *gendev, void *res)
407407
if (this->restore_intx)
408408
pci_intx(dev, this->orig_intx);
409409

410-
if (this->enabled && !this->pinned)
410+
if (pci_is_enabled(dev) && !this->pinned)
411411
pci_disable_device(dev);
412412
}
413413

@@ -450,14 +450,11 @@ int pcim_enable_device(struct pci_dev *pdev)
450450
dr = get_pci_dr(pdev);
451451
if (unlikely(!dr))
452452
return -ENOMEM;
453-
if (dr->enabled)
454-
return 0;
455453

456454
rc = pci_enable_device(pdev);
457-
if (!rc) {
455+
if (!rc)
458456
pdev->is_managed = 1;
459-
dr->enabled = 1;
460-
}
457+
461458
return rc;
462459
}
463460
EXPORT_SYMBOL(pcim_enable_device);
@@ -475,7 +472,7 @@ void pcim_pin_device(struct pci_dev *pdev)
475472
struct pci_devres *dr;
476473

477474
dr = find_pci_dr(pdev);
478-
WARN_ON(!dr || !dr->enabled);
475+
WARN_ON(!dr || !pci_is_enabled(pdev));
479476
if (dr)
480477
dr->pinned = 1;
481478
}

drivers/pci/pci.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2218,12 +2218,6 @@ void pci_disable_enabled_device(struct pci_dev *dev)
22182218
*/
22192219
void pci_disable_device(struct pci_dev *dev)
22202220
{
2221-
struct pci_devres *dr;
2222-
2223-
dr = find_pci_dr(dev);
2224-
if (dr)
2225-
dr->enabled = 0;
2226-
22272221
dev_WARN_ONCE(&dev->dev, atomic_read(&dev->enable_cnt) <= 0,
22282222
"disabling already-disabled device");
22292223

drivers/pci/pci.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,6 @@ static inline pci_power_t mid_pci_get_power_state(struct pci_dev *pdev)
821821
* then remove them from here.
822822
*/
823823
struct pci_devres {
824-
unsigned int enabled:1;
825824
unsigned int pinned:1;
826825
unsigned int orig_intx:1;
827826
unsigned int restore_intx:1;

0 commit comments

Comments
 (0)