iommu/amd: Remove the unused device errata code
authorChristoph Hellwig <hch@lst.de>
Fri, 2 Apr 2021 14:33:09 +0000 (16:33 +0200)
committerJoerg Roedel <jroedel@suse.de>
Wed, 7 Apr 2021 09:14:43 +0000 (11:14 +0200)
The device errata mechism is entirely unused, so remove it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210402143312.372386-2-hch@lst.de
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/amd_iommu_types.h
drivers/iommu/amd/iommu.c
include/linux/amd-iommu.h

index 6937e3674a16e264aa19cb1a3aade3db44b8b28b..94c1a7a9876d5546335b96ffc5b10efb5ec72ad7 100644 (file)
@@ -693,7 +693,6 @@ struct iommu_dev_data {
        } ats;                            /* ATS state */
        bool pri_tlp;                     /* PASID TLB required for
                                             PPR completions */
-       u32 errata;                       /* Bitmap for errata to apply */
        bool use_vapic;                   /* Enable device to use vapic mode */
        bool defer_attach;
 
index 70814ab0b374aff04692dbe4d0fe4b6536e2a45d..9b1a01602bb33fc449366e9a8bb4057d7097904a 100644 (file)
@@ -290,15 +290,6 @@ static bool pci_iommuv2_capable(struct pci_dev *pdev)
        return true;
 }
 
-static bool pdev_pri_erratum(struct pci_dev *pdev, u32 erratum)
-{
-       struct iommu_dev_data *dev_data;
-
-       dev_data = dev_iommu_priv_get(&pdev->dev);
-
-       return dev_data->errata & (1 << erratum) ? true : false;
-}
-
 /*
  * This function checks if the driver got a valid device from the caller to
  * avoid dereferencing invalid pointers.
@@ -1531,33 +1522,9 @@ static void pdev_iommuv2_disable(struct pci_dev *pdev)
        pci_disable_pasid(pdev);
 }
 
-/* FIXME: Change generic reset-function to do the same */
-static int pri_reset_while_enabled(struct pci_dev *pdev)
-{
-       u16 control;
-       int pos;
-
-       pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_PRI);
-       if (!pos)
-               return -EINVAL;
-
-       pci_read_config_word(pdev, pos + PCI_PRI_CTRL, &control);
-       control |= PCI_PRI_CTRL_RESET;
-       pci_write_config_word(pdev, pos + PCI_PRI_CTRL, control);
-
-       return 0;
-}
-
 static int pdev_iommuv2_enable(struct pci_dev *pdev)
 {
-       bool reset_enable;
-       int reqs, ret;
-
-       /* FIXME: Hardcode number of outstanding requests for now */
-       reqs = 32;
-       if (pdev_pri_erratum(pdev, AMD_PRI_DEV_ERRATUM_LIMIT_REQ_ONE))
-               reqs = 1;
-       reset_enable = pdev_pri_erratum(pdev, AMD_PRI_DEV_ERRATUM_ENABLE_RESET);
+       int ret;
 
        /* Only allow access to user-accessible pages */
        ret = pci_enable_pasid(pdev, 0);
@@ -1570,16 +1537,11 @@ static int pdev_iommuv2_enable(struct pci_dev *pdev)
                goto out_err;
 
        /* Enable PRI */
-       ret = pci_enable_pri(pdev, reqs);
+       /* FIXME: Hardcode number of outstanding requests for now */
+       ret = pci_enable_pri(pdev, 32);
        if (ret)
                goto out_err;
 
-       if (reset_enable) {
-               ret = pri_reset_while_enabled(pdev);
-               if (ret)
-                       goto out_err;
-       }
-
        ret = pci_enable_ats(pdev, PAGE_SHIFT);
        if (ret)
                goto out_err;
@@ -2594,18 +2556,6 @@ struct iommu_domain *amd_iommu_get_v2_domain(struct pci_dev *pdev)
 }
 EXPORT_SYMBOL(amd_iommu_get_v2_domain);
 
-void amd_iommu_enable_device_erratum(struct pci_dev *pdev, u32 erratum)
-{
-       struct iommu_dev_data *dev_data;
-
-       if (!amd_iommu_v2_supported())
-               return;
-
-       dev_data = dev_iommu_priv_get(&pdev->dev);
-       dev_data->errata |= (1 << erratum);
-}
-EXPORT_SYMBOL(amd_iommu_enable_device_erratum);
-
 int amd_iommu_device_info(struct pci_dev *pdev,
                           struct amd_iommu_device_info *info)
 {
index 450717299928bbace723d236c248c69f3c94929b..474065ed88a495c3e512e9ed450a38a8a7c40b99 100644 (file)
@@ -32,24 +32,6 @@ struct pci_dev;
 extern int amd_iommu_detect(void);
 extern int amd_iommu_init_hardware(void);
 
-/**
- * amd_iommu_enable_device_erratum() - Enable erratum workaround for device
- *                                    in the IOMMUv2 driver
- * @pdev: The PCI device the workaround is necessary for
- * @erratum: The erratum workaround to enable
- *
- * The function needs to be called before amd_iommu_init_device().
- * Possible values for the erratum number are for now:
- * - AMD_PRI_DEV_ERRATUM_ENABLE_RESET - Reset PRI capability when PRI
- *                                     is enabled
- * - AMD_PRI_DEV_ERRATUM_LIMIT_REQ_ONE - Limit number of outstanding PRI
- *                                      requests to one
- */
-#define AMD_PRI_DEV_ERRATUM_ENABLE_RESET               0
-#define AMD_PRI_DEV_ERRATUM_LIMIT_REQ_ONE              1
-
-extern void amd_iommu_enable_device_erratum(struct pci_dev *pdev, u32 erratum);
-
 /**
  * amd_iommu_init_device() - Init device for use with IOMMUv2 driver
  * @pdev: The PCI device to initialize