On 07/05/2013 04:44 AM, Hiroshi Doyu wrote: > Create default IOVA maps at boot-up which can be attached to devices. > diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c > static int tegra_smmu_probe(struct platform_device *pdev) > { > struct smmu_device *smmu; > @@ -1160,13 +1182,15 @@ static int tegra_smmu_probe(struct platform_device *pdev) > if (of_property_read_u32(dev->of_node, "nvidia,#asids", &asids)) > return -ENODEV; > > - bytes = sizeof(*smmu) + asids * sizeof(*smmu->as); > + bytes = sizeof(*smmu) + asids * (sizeof(*smmu->as) + > + sizeof(struct dma_iommu_mapping *)); > smmu = devm_kzalloc(dev, bytes, GFP_KERNEL); > if (!smmu) { > dev_err(dev, "failed to allocate smmu_device\n"); > return -ENOMEM; > } > > + smmu->map = (struct dma_iommu_mapping **)(smmu->as + asids); Shouldn't "+ asids" be "+ asids * sizeof(*smmu->as)" to match the calculation of "bytes" above? -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html