mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 08:02:07 +00:00
iommu/amd: Remove dev_data->passthrough
Make use of generic IOMMU infrastructure to gather the same information carried in dev_data->passthrough and remove the struct member. Signed-off-by: Joerg Roedel <jroedel@suse.de> Link: https://lore.kernel.org/r/20200429133712.31431-15-joro@8bytes.org Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
5012c39685
commit
57f9842e48
@ -2047,8 +2047,8 @@ out_err:
|
||||
static int attach_device(struct device *dev,
|
||||
struct protection_domain *domain)
|
||||
{
|
||||
struct pci_dev *pdev;
|
||||
struct iommu_dev_data *dev_data;
|
||||
struct pci_dev *pdev;
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
@ -2067,8 +2067,10 @@ static int attach_device(struct device *dev,
|
||||
|
||||
pdev = to_pci_dev(dev);
|
||||
if (domain->flags & PD_IOMMUV2_MASK) {
|
||||
struct iommu_domain *def_domain = iommu_get_dma_domain(dev);
|
||||
|
||||
ret = -EINVAL;
|
||||
if (!dev_data->passthrough)
|
||||
if (def_domain->type != IOMMU_DOMAIN_IDENTITY)
|
||||
goto out;
|
||||
|
||||
if (dev_data->iommu_v2) {
|
||||
@ -2189,9 +2191,7 @@ static int amd_iommu_add_device(struct device *dev)
|
||||
|
||||
/* Domains are initialized for this device - have a look what we ended up with */
|
||||
domain = iommu_get_domain_for_dev(dev);
|
||||
if (domain->type == IOMMU_DOMAIN_IDENTITY)
|
||||
dev_data->passthrough = true;
|
||||
else if (domain->type == IOMMU_DOMAIN_DMA)
|
||||
if (domain->type == IOMMU_DOMAIN_DMA)
|
||||
iommu_setup_dma_ops(dev, IOVA_START_PFN << PAGE_SHIFT, 0);
|
||||
|
||||
out:
|
||||
|
@ -640,7 +640,6 @@ struct iommu_dev_data {
|
||||
struct pci_dev *pdev;
|
||||
u16 devid; /* PCI Device ID */
|
||||
bool iommu_v2; /* Device can make use of IOMMUv2 */
|
||||
bool passthrough; /* Device is identity mapped */
|
||||
struct {
|
||||
bool enabled;
|
||||
int qdep;
|
||||
|
Loading…
Reference in New Issue
Block a user