[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1475009318-2617-9-git-send-email-eric.auger@redhat.com>
Date: Tue, 27 Sep 2016 20:48:35 +0000
From: Eric Auger <eric.auger@...hat.com>
To: eric.auger@...hat.com, eric.auger.pro@...il.com,
christoffer.dall@...aro.org, marc.zyngier@....com,
robin.murphy@....com, alex.williamson@...hat.com,
will.deacon@....com, joro@...tes.org, tglx@...utronix.de,
jason@...edaemon.net, linux-arm-kernel@...ts.infradead.org
Cc: kvm@...r.kernel.org, drjones@...hat.com,
linux-kernel@...r.kernel.org, Bharat.Bhushan@...escale.com,
pranav.sawargaonkar@...il.com, p.fedin@...sung.com,
iommu@...ts.linux-foundation.org, Jean-Philippe.Brucker@....com,
yehuday@...vell.com, Manish.Jaggi@...iumnetworks.com
Subject: [RFC 08/11] vfio/type1: Sets the IOVA window in case MSI IOVA need to be allocated
In case the IOMMU translates MSI, MSI IOVA will need to be transparently
allocated by the kernel in unused GPA space. Let's initialize a DMA domain
where some slots will be reserved "unmanaged" slots and rest is left
available for IOVA allocation.
Signed-off-by: Eric Auger <eric.auger@...hat.com>
---
drivers/vfio/vfio_iommu_type1.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index 2ba1942..ad08fd0 100644
--- a/drivers/vfio/vfio_iommu_type1.c
+++ b/drivers/vfio/vfio_iommu_type1.c
@@ -36,6 +36,7 @@
#include <linux/uaccess.h>
#include <linux/vfio.h>
#include <linux/workqueue.h>
+#include <linux/dma-iommu.h>
#define DRIVER_VERSION "0.2"
#define DRIVER_AUTHOR "Alex Williamson <alex.williamson@...hat.com>"
@@ -829,6 +830,11 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,
vfio_test_domain_fgsp(domain);
+ /* sets the IOVA window */
+ if (iommu_capable(bus, IOMMU_CAP_TRANSLATE_MSI) &&
+ iommu_get_dma_msi_region_cookie(domain->domain, 0, ULONG_MAX))
+ goto out_detach;
+
/* replay mappings on new domains */
ret = vfio_iommu_replay(iommu, domain);
if (ret)
--
1.9.1
Powered by blists - more mailing lists