Skip to content

Commit

Permalink
PCI: Clean up ATS error handling
Browse files Browse the repository at this point in the history
There's no need to BUG() if we enable ATS when it's already enabled.  We
don't need to BUG() when disabling ATS on a device that doesn't support ATS
or if it's already disabled.  If ATS is enabled, certainly we found an ATS
capability in the past, so it should still be there now.

Clean up these error paths.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Joerg Roedel <jroedel@suse.de>
  • Loading branch information
Bjorn Helgaas committed Aug 13, 2015
1 parent c39127d commit a021f30
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions drivers/pci/ats.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,12 @@ int pci_enable_ats(struct pci_dev *dev, int ps)
u16 ctrl;
struct pci_dev *pdev;

BUG_ON(dev->ats_cap && dev->ats_enabled);

if (!dev->ats_cap)
return -EINVAL;

if (WARN_ON(pci_ats_enabled(dev)))
return -EBUSY;

if (ps < PCI_ATS_MIN_STU)
return -EINVAL;

Expand Down Expand Up @@ -83,7 +84,8 @@ void pci_disable_ats(struct pci_dev *dev)
struct pci_dev *pdev;
u16 ctrl;

BUG_ON(!dev->ats_cap || !dev->ats_enabled);
if (WARN_ON(!pci_ats_enabled(dev)))
return;

if (atomic_read(&dev->ats_ref_cnt))
return; /* VFs still enabled */
Expand All @@ -107,8 +109,6 @@ void pci_restore_ats_state(struct pci_dev *dev)

if (!pci_ats_enabled(dev))
return;
if (!pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ATS))
BUG();

ctrl = PCI_ATS_CTRL_ENABLE;
if (!dev->is_virtfn)
Expand Down

0 comments on commit a021f30

Please sign in to comment.