Linux IOMMU Development
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
Cc: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Joerg Roedel <jroedel-l3A5Bk7waGM@public.gmane.org>,
	David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Subject: Re: [PATCH 08/11] iommu/msm: Make use of iommu_device_register interface
Date: Fri, 10 Feb 2017 17:36:53 +0000	[thread overview]
Message-ID: <045e481d-92bb-ae3d-5e01-c06e31f6d426@arm.com> (raw)
In-Reply-To: <20170210153339.GK7339-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>

On 10/02/17 15:33, Joerg Roedel wrote:
> 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.

For the ARM SMMUs at least, the SMMU-specific data is (well, should be)
all devm_* managed, thus freed automatically by the driver core after
remove() returns. It is true that there's an implicit expectation that
the SMMU won't be removed until all domains, groups and masters have
been explicitly torn down by the relevant detach()/remove()/free()
calls, although I guess the sysfs links might actually help enforce that.

> So I think we are fine from that side.

Sure, I mostly just wanted not to lose sight of the future possibility
of unloadable IOMMU drivers (admittedly I've not even tried that yet,
only loading them post-boot).

Robin.

> 
> 
> 	Joerg
> 

  parent reply	other threads:[~2017-02-10 17:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-09 11:32 [PATCH 00/11 v3] Let IOMMU core know about individual IOMMUs Joerg Roedel
     [not found] ` <1486639981-32368-1-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-09 11:32   ` [PATCH 01/11] iommu: Rename iommu_get_instance() Joerg Roedel
     [not found]     ` <1486639981-32368-2-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 14:12       ` Robin Murphy
     [not found]         ` <baf8d059-8c74-baa4-1806-ca1e3733cd93-5wv7dgnIgG8@public.gmane.org>
2017-02-10 15:36           ` Joerg Roedel
2017-02-09 11:32   ` [PATCH 02/11] iommu: Rename struct iommu_device Joerg Roedel
2017-02-09 11:32   ` [PATCH 03/11] iommu: Introduce new 'struct iommu_device' Joerg Roedel
     [not found]     ` <1486639981-32368-4-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-09 20:42       ` kbuild test robot
2017-02-09 11:32   ` [PATCH 04/11] iommu: Add sysfs bindings for struct iommu_device Joerg Roedel
2017-02-09 11:32   ` [PATCH 05/11] iommu: Make iommu_device_link/unlink take a " Joerg Roedel
2017-02-09 11:32   ` [PATCH 06/11] iommu: Add iommu_device_set_fwnode() interface Joerg Roedel
     [not found]     ` <1486639981-32368-7-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 14:16       ` Robin Murphy
     [not found]         ` <417eee8c-4e1b-57f0-2c00-d6c3926ce66d-5wv7dgnIgG8@public.gmane.org>
2017-02-10 15:22           ` Joerg Roedel
     [not found]             ` <20170210152254.GI7339-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 16:03               ` Robin Murphy
     [not found]                 ` <f770249b-ad98-10d8-ea79-dc10cef7f4df-5wv7dgnIgG8@public.gmane.org>
2017-02-10 16:11                   ` Joerg Roedel
     [not found]                     ` <20170210161122.GB18474-l3A5Bk7waGM@public.gmane.org>
2017-02-10 16:59                       ` Robin Murphy
2017-02-09 11:32   ` [PATCH 07/11] iommu/arm-smmu: Make use of the iommu_register interface Joerg Roedel
     [not found]     ` <1486639981-32368-8-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 14:20       ` Robin Murphy
     [not found]         ` <9bba214f-4d83-1e37-2df8-2f7db11f7d1f-5wv7dgnIgG8@public.gmane.org>
2017-02-10 15:25           ` Joerg Roedel
     [not found]             ` <20170210152553.GJ7339-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 17:07               ` Robin Murphy
2017-02-09 11:32   ` [PATCH 08/11] iommu/msm: Make use of iommu_device_register interface Joerg Roedel
     [not found]     ` <1486639981-32368-9-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 14:35       ` Robin Murphy
     [not found]         ` <5bda5842-45b4-fc3c-7eea-351e4c2261b1-5wv7dgnIgG8@public.gmane.org>
2017-02-10 15:33           ` Joerg Roedel
     [not found]             ` <20170210153339.GK7339-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 17:36               ` Robin Murphy [this message]
2017-02-09 11:32   ` [PATCH 09/11] iommu/mediatek: " Joerg Roedel
2017-02-09 11:32   ` [PATCH 10/11] iommu/exynos: " Joerg Roedel
     [not found]     ` <1486639981-32368-11-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2017-02-10 13:46       ` Marek Szyprowski
     [not found]         ` <9a1997dd-5835-cb9a-6478-7fb276151e52-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2017-02-10 13:59           ` Joerg Roedel
2017-02-09 11:33 ` [PATCH 11/11] iommu: Remove iommu_register_instance interface Joerg Roedel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=045e481d-92bb-ae3d-5e01-c06e31f6d426@arm.com \
    --to=robin.murphy-5wv7dgnigg8@public.gmane.org \
    --cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
    --cc=jroedel-l3A5Bk7waGM@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox