Hi Suman, Thank you for the patch. On Thursday 04 September 2014 17:27:30 Suman Anna wrote: > A device is tied to an iommu through its archdata field. The archdata > is allocated on the fly for DT-based devices automatically through the > .add_device iommu ops. The current logic incorrectly assigned the name > of the IOMMU user device, instead of the name of the IOMMU device as > required by the attach logic. Fix this issue so that DT-based devices > can attach successfully to an IOMMU domain. > > Signed-off-by: Suman Anna <s-anna@xxxxxx> Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/iommu/omap-iommu.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c > index ea6e59d..8cf8bf1 100644 > --- a/drivers/iommu/omap-iommu.c > +++ b/drivers/iommu/omap-iommu.c > @@ -26,6 +26,7 @@ > #include <linux/of.h> > #include <linux/of_iommu.h> > #include <linux/of_irq.h> > +#include <linux/of_platform.h> > > #include <asm/cacheflush.h> > > @@ -1243,6 +1244,7 @@ static int omap_iommu_add_device(struct device *dev) > { > struct omap_iommu_arch_data *arch_data; > struct device_node *np; > + struct platform_device *pdev; > > /* > * Allocate the archdata iommu structure for DT-based devices. > @@ -1257,13 +1259,19 @@ static int omap_iommu_add_device(struct device *dev) > if (!np) > return 0; > > + pdev = of_find_device_by_node(np); > + if (WARN_ON(!pdev)) { > + of_node_put(np); > + return -EINVAL; > + } > + > arch_data = kzalloc(sizeof(*arch_data), GFP_KERNEL); > if (!arch_data) { > of_node_put(np); > return -ENOMEM; > } > > - arch_data->name = kstrdup(dev_name(dev), GFP_KERNEL); > + arch_data->name = kstrdup(dev_name(&pdev->dev), GFP_KERNEL); > dev->archdata.iommu = arch_data; > > of_node_put(np); -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html