Loading drivers/iommu/tegra-smmu.c +9 −20 Original line number Diff line number Diff line Loading @@ -241,8 +241,6 @@ struct smmu_device { spinlock_t lock; char *name; struct device *dev; int num_as; struct smmu_as *as; /* Run-time allocated array */ struct page *avp_vector_page; /* dummy page shared by all AS's */ /* Loading @@ -254,6 +252,9 @@ struct smmu_device { unsigned long asid_security; struct device_node *ahb; int num_as; struct smmu_as as[0]; /* Run-time allocated array */ }; static struct smmu_device *smmu_handle; /* unique for a system */ Loading Loading @@ -902,15 +903,18 @@ static int tegra_smmu_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; int i, asids, err = 0; dma_addr_t base; size_t size; const void *prop; size_t bytes, size; if (smmu_handle) return -EIO; BUILD_BUG_ON(PAGE_SHIFT != SMMU_PAGE_SHIFT); smmu = devm_kzalloc(dev, sizeof(*smmu), GFP_KERNEL); if (of_property_read_u32(dev->of_node, "nvidia,#asids", &asids)) return -ENODEV; bytes = sizeof(*smmu) + asids * sizeof(*smmu->as); smmu = devm_kzalloc(dev, bytes, GFP_KERNEL); if (!smmu) { dev_err(dev, "failed to allocate smmu_device\n"); return -ENOMEM; Loading Loading @@ -938,13 +942,6 @@ static int tegra_smmu_probe(struct platform_device *pdev) if (!size) return -EINVAL; prop = of_get_property(dev->of_node, "nvidia,#asids", NULL); if (!prop) return -ENODEV; asids = be32_to_cpup(prop); if (!asids) return -ENODEV; smmu->ahb = of_parse_phandle(dev->of_node, "nvidia,ahb", 0); if (!smmu->ahb) return -ENODEV; Loading @@ -959,14 +956,6 @@ static int tegra_smmu_probe(struct platform_device *pdev) smmu->translation_enable_2 = ~0; smmu->asid_security = 0; smmu->as = devm_kzalloc(dev, sizeof(smmu->as[0]) * smmu->num_as, GFP_KERNEL); if (!smmu->as) { dev_err(dev, "failed to allocate smmu_as\n"); err = -ENOMEM; goto fail; } for (i = 0; i < smmu->num_as; i++) { struct smmu_as *as = &smmu->as[i]; Loading Loading
drivers/iommu/tegra-smmu.c +9 −20 Original line number Diff line number Diff line Loading @@ -241,8 +241,6 @@ struct smmu_device { spinlock_t lock; char *name; struct device *dev; int num_as; struct smmu_as *as; /* Run-time allocated array */ struct page *avp_vector_page; /* dummy page shared by all AS's */ /* Loading @@ -254,6 +252,9 @@ struct smmu_device { unsigned long asid_security; struct device_node *ahb; int num_as; struct smmu_as as[0]; /* Run-time allocated array */ }; static struct smmu_device *smmu_handle; /* unique for a system */ Loading Loading @@ -902,15 +903,18 @@ static int tegra_smmu_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; int i, asids, err = 0; dma_addr_t base; size_t size; const void *prop; size_t bytes, size; if (smmu_handle) return -EIO; BUILD_BUG_ON(PAGE_SHIFT != SMMU_PAGE_SHIFT); smmu = devm_kzalloc(dev, sizeof(*smmu), GFP_KERNEL); if (of_property_read_u32(dev->of_node, "nvidia,#asids", &asids)) return -ENODEV; bytes = sizeof(*smmu) + asids * sizeof(*smmu->as); smmu = devm_kzalloc(dev, bytes, GFP_KERNEL); if (!smmu) { dev_err(dev, "failed to allocate smmu_device\n"); return -ENOMEM; Loading Loading @@ -938,13 +942,6 @@ static int tegra_smmu_probe(struct platform_device *pdev) if (!size) return -EINVAL; prop = of_get_property(dev->of_node, "nvidia,#asids", NULL); if (!prop) return -ENODEV; asids = be32_to_cpup(prop); if (!asids) return -ENODEV; smmu->ahb = of_parse_phandle(dev->of_node, "nvidia,ahb", 0); if (!smmu->ahb) return -ENODEV; Loading @@ -959,14 +956,6 @@ static int tegra_smmu_probe(struct platform_device *pdev) smmu->translation_enable_2 = ~0; smmu->asid_security = 0; smmu->as = devm_kzalloc(dev, sizeof(smmu->as[0]) * smmu->num_as, GFP_KERNEL); if (!smmu->as) { dev_err(dev, "failed to allocate smmu_as\n"); err = -ENOMEM; goto fail; } for (i = 0; i < smmu->num_as; i++) { struct smmu_as *as = &smmu->as[i]; Loading