Skip to content

Commit

Permalink
PCI: Enable is not exposed as a PASID capability
Browse files Browse the repository at this point in the history
The PASID ECN indicates bit 0 is reserved in the capability register.
Switch pci_enable_pasid() to error if PASID is already enabled and
don't expose enable as a feature in pci_pasid_features().

Reviewed-by: Joerg Roedel <joerg.roedel@amd.com>
Tested-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
  • Loading branch information
Alex Williamson authored and Jesse Barnes committed Dec 5, 2011
1 parent a776c49 commit 60fe823
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions drivers/pci/ats.c
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ int pci_enable_pasid(struct pci_dev *pdev, int features)
pci_read_config_word(pdev, pos + PCI_PASID_CONTROL_OFF, &control);
pci_read_config_word(pdev, pos + PCI_PASID_CAP_OFF, &supported);

if (!(supported & PCI_PASID_ENABLE))
if (control & PCI_PASID_ENABLE)
return -EINVAL;

supported &= PCI_PASID_EXEC | PCI_PASID_PRIV;
Expand Down Expand Up @@ -390,7 +390,6 @@ EXPORT_SYMBOL_GPL(pci_disable_pasid);
* Returns a negative value when no PASI capability is present.
* Otherwise is returns a bitmask with supported features. Current
* features reported are:
* PCI_PASID_ENABLE - PASID capability can be enabled
* PCI_PASID_EXEC - Execute permission supported
* PCI_PASID_PRIV - Priviledged mode supported
*/
Expand All @@ -405,7 +404,7 @@ int pci_pasid_features(struct pci_dev *pdev)

pci_read_config_word(pdev, pos + PCI_PASID_CAP_OFF, &supported);

supported &= PCI_PASID_ENABLE | PCI_PASID_EXEC | PCI_PASID_PRIV;
supported &= PCI_PASID_EXEC | PCI_PASID_PRIV;

return supported;
}
Expand Down

0 comments on commit 60fe823

Please sign in to comment.