All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Auger <eric.auger@redhat.com>
To: eric.auger@redhat.com, eric.auger.pro@gmail.com,
	christoffer.dall@linaro.org, marc.zyngier@arm.com,
	robin.murphy@arm.com, alex.williamson@redhat.com,
	will.deacon@arm.com, joro@8bytes.org, tglx@linutronix.de,
	jason@lakedaemon.net, linux-arm-kernel@lists.infradead.org
Cc: kvm@vger.kernel.org, drjones@redhat.com,
	linux-kernel@vger.kernel.org, pranav.sawargaonkar@gmail.com,
	iommu@lists.linux-foundation.org, punit.agrawal@arm.com,
	diana.craciun@nxp.com
Subject: [RFC 4/8] iommu: Add a list of iommu_reserved_region in iommu_domain
Date: Thu,  3 Nov 2016 21:39:34 +0000	[thread overview]
Message-ID: <1478209178-3009-5-git-send-email-eric.auger@redhat.com> (raw)
In-Reply-To: <1478209178-3009-1-git-send-email-eric.auger@redhat.com>

Introduce a new iommu_reserved_region struct. This embodies
an IOVA reserved region that cannot be used along with the IOMMU
API. The list is protected by a dedicated mutex.

An iommu domain now owns a list of those.

Signed-off-by: Eric Auger <eric.auger@redhat.com>

---
---
 drivers/iommu/iommu.c |  2 ++
 include/linux/iommu.h | 17 +++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 9a2f196..0af07492 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -1061,6 +1061,8 @@ static struct iommu_domain *__iommu_domain_alloc(struct bus_type *bus,
 
 	domain->ops  = bus->iommu_ops;
 	domain->type = type;
+	INIT_LIST_HEAD(&domain->reserved_regions);
+	mutex_init(&domain->resv_mutex);
 	/* Assume all sizes by default; the driver may override this later */
 	domain->pgsize_bitmap  = bus->iommu_ops->pgsize_bitmap;
 
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index 436dc21..0f2eb64 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -84,6 +84,8 @@ struct iommu_domain {
 	void *handler_token;
 	struct iommu_domain_geometry geometry;
 	void *iova_cookie;
+	struct list_head reserved_regions;
+	struct mutex resv_mutex; /* protects the reserved region list */
 };
 
 enum iommu_cap {
@@ -131,6 +133,21 @@ struct iommu_dm_region {
 	int			prot;
 };
 
+/**
+ * struct iommu_reserved_region - descriptor for a reserved iova region
+ * @list: Linked list pointers
+ * @start: IOVA base address of the region
+ * @length: Length of the region in bytes
+ */
+struct iommu_reserved_region {
+	struct list_head	list;
+	dma_addr_t		start;
+	size_t			length;
+};
+
+#define iommu_reserved_region_for_each(resv, d) \
+	list_for_each_entry(resv, &(d)->reserved_regions, list)
+
 #ifdef CONFIG_IOMMU_API
 
 /**
-- 
1.9.1

  parent reply	other threads:[~2016-11-03 21:40 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-03 21:39 [RFC 0/8] KVM PCIe/MSI passthrough on ARM/ARM64 (Alt II) Eric Auger
2016-11-03 21:39 ` Eric Auger
2016-11-03 21:39 ` Eric Auger
2016-11-03 21:39 ` [RFC 1/8] vfio: fix vfio_info_cap_add/shift Eric Auger
2016-11-03 21:39   ` Eric Auger
2016-11-03 21:39 ` [RFC 2/8] iommu/iova: fix __alloc_and_insert_iova_range Eric Auger
2016-11-03 21:39   ` Eric Auger
2016-11-03 21:39 ` [RFC 3/8] iommu/dma: Allow MSI-only cookies Eric Auger
2016-11-03 21:39   ` Eric Auger
2016-11-03 21:39 ` Eric Auger [this message]
2016-11-03 21:39 ` [RFC 5/8] vfio/type1: Introduce RESV_IOVA_RANGE capability Eric Auger
2016-11-03 21:39   ` Eric Auger
2016-11-03 21:39 ` [RFC 6/8] iommu: Handle the list of reserved regions Eric Auger
2016-11-03 21:39 ` [RFC 7/8] iommu/vt-d: Implement add_reserved_regions callback Eric Auger
2016-11-03 21:39 ` [RFC 8/8] iommu/arm-smmu: implement " Eric Auger
2016-11-03 21:39   ` Eric Auger
2016-11-04  4:02 ` [RFC 0/8] KVM PCIe/MSI passthrough on ARM/ARM64 (Alt II) Alex Williamson
2016-11-04  4:02   ` Alex Williamson
2016-11-04  4:02   ` Alex Williamson
2016-11-08  2:45   ` Summary of LPC guest MSI discussion in Santa Fe (was: Re: [RFC 0/8] KVM PCIe/MSI passthrough on ARM/ARM64 (Alt II)) Will Deacon
2016-11-08  2:45     ` Will Deacon
2016-11-08 14:27     ` Summary of LPC guest MSI discussion in Santa Fe Auger Eric
2016-11-08 14:27       ` Auger Eric
2016-11-08 17:54       ` Will Deacon
2016-11-08 17:54         ` Will Deacon
2016-11-08 17:54         ` Will Deacon
2016-11-08 19:02         ` Don Dutile
2016-11-08 19:02           ` Don Dutile
2016-11-08 19:02           ` Don Dutile
2016-11-08 19:10           ` Will Deacon
2016-11-08 19:10             ` Will Deacon
2016-11-09  7:43           ` Auger Eric
2016-11-09  7:43             ` Auger Eric
2016-11-09  7:43             ` Auger Eric
2016-11-08 16:02     ` Don Dutile
2016-11-08 16:02       ` Don Dutile
2016-11-08 20:29     ` Summary of LPC guest MSI discussion in Santa Fe (was: Re: [RFC 0/8] KVM PCIe/MSI passthrough on ARM/ARM64 (Alt II)) Christoffer Dall
2016-11-08 20:29       ` Christoffer Dall
2016-11-08 20:29       ` Christoffer Dall
2016-11-08 23:35       ` Alex Williamson
2016-11-08 23:35         ` Alex Williamson
2016-11-08 23:35         ` Alex Williamson
2016-11-09  2:52         ` Summary of LPC guest MSI discussion in Santa Fe Don Dutile
2016-11-09  2:52           ` Don Dutile
2016-11-09  2:52           ` Don Dutile
2016-11-09 17:03           ` Will Deacon
2016-11-09 17:03             ` Will Deacon
2016-11-09 17:03             ` Will Deacon
2016-11-09 18:59             ` Don Dutile
2016-11-09 18:59               ` Don Dutile
2016-11-09 19:23               ` Christoffer Dall
2016-11-09 19:23                 ` Christoffer Dall
2016-11-09 19:23                 ` Christoffer Dall
2016-11-09 20:01                 ` Alex Williamson
2016-11-09 20:01                   ` Alex Williamson
2016-11-09 20:01                   ` Alex Williamson
2016-11-10 14:40                   ` Joerg Roedel
2016-11-10 14:40                     ` Joerg Roedel
2016-11-10 17:07                     ` Alex Williamson
2016-11-10 17:07                       ` Alex Williamson
2016-11-10 17:07                       ` Alex Williamson
2016-11-09 20:31                 ` Will Deacon
2016-11-09 20:31                   ` Will Deacon
2016-11-09 22:17                   ` Alex Williamson
2016-11-09 22:17                     ` Alex Williamson
2016-11-09 22:17                     ` Alex Williamson
2016-11-09 22:25                     ` Will Deacon
2016-11-09 22:25                       ` Will Deacon
2016-11-09 22:25                       ` Will Deacon
2016-11-09 23:24                       ` Alex Williamson
2016-11-09 23:24                         ` Alex Williamson
2016-11-09 23:24                         ` Alex Williamson
2016-11-09 23:38                         ` Will Deacon
2016-11-09 23:38                           ` Will Deacon
2016-11-09 23:59                           ` Alex Williamson
2016-11-09 23:59                             ` Alex Williamson
2016-11-09 23:59                             ` Alex Williamson
2016-11-10  0:14                             ` Auger Eric
2016-11-10  0:14                               ` Auger Eric
2016-11-10  0:55                               ` Alex Williamson
2016-11-10  0:55                                 ` Alex Williamson
2016-11-10  0:55                                 ` Alex Williamson
2016-11-10  2:01                                 ` Will Deacon
2016-11-10  2:01                                   ` Will Deacon
2016-11-10 11:14                                   ` Auger Eric
2016-11-10 11:14                                     ` Auger Eric
2016-11-10 11:14                                     ` Auger Eric
2016-11-10 17:46                                     ` Alex Williamson
2016-11-10 17:46                                       ` Alex Williamson
2016-11-10 17:46                                       ` Alex Williamson
2016-11-11 11:19                                       ` Joerg Roedel
2016-11-11 11:19                                         ` Joerg Roedel
2016-11-11 15:50                                         ` Alex Williamson
2016-11-11 15:50                                           ` Alex Williamson
2016-11-11 15:50                                           ` Alex Williamson
2016-11-11 16:05                                           ` Alex Williamson
2016-11-11 16:05                                             ` Alex Williamson
2016-11-11 16:05                                             ` Alex Williamson
2016-11-14 15:19                                             ` Joerg Roedel
2016-11-14 15:19                                               ` Joerg Roedel
2016-11-11 16:25                                           ` Don Dutile
2016-11-11 16:25                                             ` Don Dutile
2016-11-11 16:25                                             ` Don Dutile
2016-11-11 16:00                                         ` Don Dutile
2016-11-11 16:00                                           ` Don Dutile
2016-11-11 16:00                                           ` Don Dutile
2016-11-10 14:52                               ` Joerg Roedel
2016-11-10 14:52                                 ` Joerg Roedel
2016-11-09 20:11               ` Robin Murphy
2016-11-09 20:11                 ` Robin Murphy
2016-11-10 15:18                 ` Joerg Roedel
2016-11-10 15:18                   ` Joerg Roedel
2016-11-10 15:18                   ` Joerg Roedel
2016-11-21  5:13     ` Jon Masters
2016-11-21  5:13       ` Jon Masters
2016-11-21  5:13       ` Jon Masters
2016-11-23 20:12       ` Don Dutile
2016-11-23 20:12         ` Don Dutile
2016-11-23 20:12         ` Don Dutile

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=1478209178-3009-5-git-send-email-eric.auger@redhat.com \
    --to=eric.auger@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=christoffer.dall@linaro.org \
    --cc=diana.craciun@nxp.com \
    --cc=drjones@redhat.com \
    --cc=eric.auger.pro@gmail.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jason@lakedaemon.net \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=pranav.sawargaonkar@gmail.com \
    --cc=punit.agrawal@arm.com \
    --cc=robin.murphy@arm.com \
    --cc=tglx@linutronix.de \
    --cc=will.deacon@arm.com \
    /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.