From: "Zhaoyu Liu" <liuzhaoyu.zackary@picoheart.com>
To: <joro@8bytes.org>, <will@kernel.org>, <robin.murphy@arm.com>,
<baolu.lu@linux.intel.com>
Cc: <iommu@lists.linux.dev>, <linux-kernel@vger.kernel.org>
Subject: [PATCH] iommu/sva: remove iommu_sva_present flag
Date: Sun, 23 Aug 2026 17:24:36 +0800 [thread overview]
Message-ID: <aoq8VGFL/Mdjd/M5@hostpc> (raw)
The global iommu_sva_present bool merely mirrors
!list_empty(&iommu_sva_mms) under the same mutex. Remove it and rely
on list_for_each_entry to handle the empty list case, which is a no-op.
Signed-off-by: Zhaoyu Liu <liuzhaoyu.zackary@picoheart.com>
---
drivers/iommu/iommu-sva.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/drivers/iommu/iommu-sva.c b/drivers/iommu/iommu-sva.c
index 9742cb593577..9827cb804363 100644
--- a/drivers/iommu/iommu-sva.c
+++ b/drivers/iommu/iommu-sva.c
@@ -11,7 +11,6 @@
#include "iommu-priv.h"
static DEFINE_MUTEX(iommu_sva_lock);
-static bool iommu_sva_present;
static LIST_HEAD(iommu_sva_mms);
static struct iommu_domain *iommu_sva_domain_alloc(struct device *dev,
struct mm_struct *mm);
@@ -137,11 +136,9 @@ struct iommu_sva *iommu_sva_bind_device(struct device *dev, struct mm_struct *mm
goto out_free_domain;
domain->users = 1;
- if (list_empty(&iommu_mm->sva_domains)) {
- if (list_empty(&iommu_sva_mms))
- iommu_sva_present = true;
+ if (list_empty(&iommu_mm->sva_domains))
list_add(&iommu_mm->mm_list_elm, &iommu_sva_mms);
- }
+
list_add(&domain->next, &iommu_mm->sva_domains);
out:
refcount_set(&handle->users, 1);
@@ -182,11 +179,8 @@ void iommu_sva_unbind_device(struct iommu_sva *handle)
iommu_detach_device_pasid(domain, dev, iommu_mm->pasid);
if (--domain->users == 0) {
list_del(&domain->next);
- if (list_empty(&iommu_mm->sva_domains)) {
+ if (list_empty(&iommu_mm->sva_domains))
list_del(&iommu_mm->mm_list_elm);
- if (list_empty(&iommu_sva_mms))
- iommu_sva_present = false;
- }
iommu_domain_free(domain);
}
@@ -334,8 +328,6 @@ void iommu_sva_invalidate_kva_range(unsigned long start, unsigned long end)
struct iommu_mm_data *iommu_mm;
guard(mutex)(&iommu_sva_lock);
- if (!iommu_sva_present)
- return;
list_for_each_entry(iommu_mm, &iommu_sva_mms, mm_list_elm)
mmu_notifier_arch_invalidate_secondary_tlbs(iommu_mm->mm, start, end);
--
2.34.1
next reply other threads:[~2026-08-23 9:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-23 9:24 Zhaoyu Liu [this message]
2026-08-27 13:10 ` [PATCH] iommu/sva: remove iommu_sva_present flag Jason Gunthorpe
2026-09-01 8:21 ` Zhaoyu Liu
2026-09-02 1:37 ` Baolu Lu
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=aoq8VGFL/Mdjd/M5@hostpc \
--to=liuzhaoyu.zackary@picoheart.com \
--cc=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=will@kernel.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.