From: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>
To: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
Cc: "jroedel-l3A5Bk7waGM@public.gmane.org"
<jroedel-l3A5Bk7waGM@public.gmane.org>,
Laurent Pinchart
<laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>,
Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
Thierry Reding
<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Subject: Re: [PATCH 4/5] iommu: Make sure a device is always attached to a domain
Date: Wed, 28 Jan 2015 14:38:52 +0000 [thread overview]
Message-ID: <20150128143852.GS1569@arm.com> (raw)
In-Reply-To: <1422317339-22620-5-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
On Tue, Jan 27, 2015 at 12:08:58AM +0000, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel-l3A5Bk7waGM@public.gmane.org>
>
> Make use of the default domain and re-attach a device to it
> when it is detached from another domain. Also enforce that a
> device has to be in the default domain before it can be
> attached to a different domain.
>
> Signed-off-by: Joerg Roedel <jroedel-l3A5Bk7waGM@public.gmane.org>
> ---
> drivers/iommu/iommu.c | 34 +++++++++++++++++++++++++++++++---
> 1 file changed, 31 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index b63a550..5080759 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -53,6 +53,7 @@ struct iommu_group {
> int id;
> unsigned dev_cnt;
> struct iommu_domain *default_domain;
> + struct iommu_domain *domain;
> };
>
> struct iommu_device {
> @@ -1040,8 +1041,17 @@ static int iommu_group_do_attach_device(struct device *dev, void *data)
>
> int iommu_attach_group(struct iommu_domain *domain, struct iommu_group *group)
> {
> - return iommu_group_for_each_dev(group, domain,
> - iommu_group_do_attach_device);
> + int ret;
> +
> + if (group->default_domain && group->domain != group->default_domain)
> + return -EBUSY;
I think this is now racy with itself and detach, whereas before we always
held the group->mutex by virtue of iommu_group_for_each_dev.
Will
WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: "iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>, Kukjin Kim <kgene@kernel.org>,
David Woodhouse <dwmw2@infradead.org>,
Heiko Stuebner <heiko@sntech.de>, Hiroshi Doyu <hdoyu@nvidia.com>,
Thierry Reding <thierry.reding@gmail.com>,
Alex Williamson <alex.williamson@redhat.com>,
Arnd Bergmann <arnd@arndb.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Robin Murphy <Robin.Murphy@arm.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
"jroedel@suse.de" <jroedel@suse.de>
Subject: Re: [PATCH 4/5] iommu: Make sure a device is always attached to a domain
Date: Wed, 28 Jan 2015 14:38:52 +0000 [thread overview]
Message-ID: <20150128143852.GS1569@arm.com> (raw)
In-Reply-To: <1422317339-22620-5-git-send-email-joro@8bytes.org>
On Tue, Jan 27, 2015 at 12:08:58AM +0000, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel@suse.de>
>
> Make use of the default domain and re-attach a device to it
> when it is detached from another domain. Also enforce that a
> device has to be in the default domain before it can be
> attached to a different domain.
>
> Signed-off-by: Joerg Roedel <jroedel@suse.de>
> ---
> drivers/iommu/iommu.c | 34 +++++++++++++++++++++++++++++++---
> 1 file changed, 31 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index b63a550..5080759 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -53,6 +53,7 @@ struct iommu_group {
> int id;
> unsigned dev_cnt;
> struct iommu_domain *default_domain;
> + struct iommu_domain *domain;
> };
>
> struct iommu_device {
> @@ -1040,8 +1041,17 @@ static int iommu_group_do_attach_device(struct device *dev, void *data)
>
> int iommu_attach_group(struct iommu_domain *domain, struct iommu_group *group)
> {
> - return iommu_group_for_each_dev(group, domain,
> - iommu_group_do_attach_device);
> + int ret;
> +
> + if (group->default_domain && group->domain != group->default_domain)
> + return -EBUSY;
I think this is now racy with itself and detach, whereas before we always
held the group->mutex by virtue of iommu_group_for_each_dev.
Will
next prev parent reply other threads:[~2015-01-28 14:38 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-27 0:08 [RFC PATCH 0/5] iommu: Introduce default domains for iommu groups Joerg Roedel
2015-01-27 0:08 ` Joerg Roedel
[not found] ` <1422317339-22620-1-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-01-27 0:08 ` [PATCH 1/5] iommu: Add default domain to iommu-groups Joerg Roedel
2015-01-27 0:08 ` Joerg Roedel
2015-01-27 0:08 ` [PATCH 2/5] iommu: Allocate a default domain for iommu groups Joerg Roedel
2015-01-27 0:08 ` Joerg Roedel
[not found] ` <1422317339-22620-3-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-01-28 14:30 ` Will Deacon
2015-01-28 14:30 ` Will Deacon
[not found] ` <20150128143006.GQ1569-5wv7dgnIgG8@public.gmane.org>
2015-01-28 15:11 ` Robin Murphy
2015-01-28 15:11 ` Robin Murphy
2015-01-30 12:25 ` Joerg Roedel
2015-01-30 12:25 ` Joerg Roedel
2015-01-27 0:08 ` [PATCH 3/5] iommu: Limit iommu_attach/detach_device to devices with their own group Joerg Roedel
2015-01-27 0:08 ` Joerg Roedel
[not found] ` <1422317339-22620-4-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-01-28 14:35 ` Will Deacon
2015-01-28 14:35 ` Will Deacon
[not found] ` <20150128143523.GR1569-5wv7dgnIgG8@public.gmane.org>
2015-01-30 12:28 ` Joerg Roedel
2015-01-30 12:28 ` Joerg Roedel
[not found] ` <20150130122814.GC3702-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-02-02 16:45 ` Will Deacon
2015-02-02 16:45 ` Will Deacon
2015-02-03 12:25 ` Thierry Reding
2015-02-03 12:25 ` Thierry Reding
[not found] ` <20150203122506.GC15068-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-02-03 12:59 ` Joerg Roedel
2015-02-03 12:59 ` Joerg Roedel
2015-01-27 0:08 ` [PATCH 4/5] iommu: Make sure a device is always attached to a domain Joerg Roedel
2015-01-27 0:08 ` Joerg Roedel
[not found] ` <1422317339-22620-5-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-01-28 14:38 ` Will Deacon [this message]
2015-01-28 14:38 ` Will Deacon
[not found] ` <20150128143852.GS1569-5wv7dgnIgG8@public.gmane.org>
2015-01-30 12:29 ` Joerg Roedel
2015-01-30 12:29 ` Joerg Roedel
2015-01-27 0:08 ` [PATCH 5/5] iommu: Add iommu_get_domain_for_dev function Joerg Roedel
2015-01-27 0:08 ` 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=20150128143852.GS1569@arm.com \
--to=will.deacon-5wv7dgnigg8@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
--cc=jroedel-l3A5Bk7waGM@public.gmane.org \
--cc=kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.