Re: [PATCH 08/11] iommu/msm: Make use of iommu_device_register interface

Joerg Roedel
2017-02-10T15:58:10Z

On Fri, Feb 10, 2017 at 02:35:39PM +0000, Robin Murphy wrote:
> On 09/02/17 11:32, Joerg Roedel wrote:
> > + ret = iommu_device_sysfs_add(&iommu->iommu, iommu->dev, NULL,
> > + "msm-smmu.%pa", &ioaddr);
> > + if (ret) {
> > + pr_err("Could not add msm-smmu at %pa to sysfs\n", &ioaddr);
> > + goto fail;
> > + }
>
> Nit: there's a bit of inconsistency with printing errors between the
> various drivers (for both _sysfs_add and _register). I reckon if we want
> error messages we may as well just fold them into the helper functions.

Yeah, this could be unified too. For now I looked how verbose the
driver was that I was going to change and added messages to be
consistent inside the drivers.

>
> > +
> > + iommu_device_set_ops(&iommu->iommu, &msm_iommu_ops);
> > + iommu_device_set_fwnode(&iommu->iommu, &pdev->dev.of_node->fwnode);
> > +
> > + ret = iommu_device_register(&iommu->iommu);
> > + if (ret) {
> > + pr_err("Could not register msm-smmu at %pa\n", &ioaddr);
> > + goto fail;
> > + }
>
> I think there's a corresponding unregister missing for
> msm_iommu_remove() here (and similarly in the ARM SMMU drivers, looking
> back). I know it's not strictly a problem at the moment, but I do now
> have IOMMU-drivers-as-modules working on top of the probe deferral
> series... ;)

Well, that there was an iommu_register_instance() without any
unregistration interface at all makes me believe that unregistering
iommus is not really implemented yet.

And in fact, the remove functions for msm and arm-smmu seem to only
disable the hardware, but are not removing the corresponding data
structures.

So I think we are fine from that side.

Joerg