All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
To: Robin Murphy <robin.murphy@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	"lorenzo.pieralisi@arm.com" <lorenzo.pieralisi@arm.com>
Cc: Gabriele Paoloni <gabriele.paoloni@huawei.com>,
	"marc.zyngier@arm.com" <marc.zyngier@arm.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"joro@8bytes.org" <joro@8bytes.org>,
	John Garry <john.garry@huawei.com>,
	"Guohanjun (Hanjun Guo)" <guohanjun@huawei.com>,
	Linuxarm <linuxarm@huawei.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"Wangzhou (B)" <wangzhou1@hisilicon.com>,
	"sudeep.holla@arm.com" <sudeep.holla@arm.com>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"devel@acpica.org" <devel@acpica.org>
Subject: RE: [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW MSI address regions for IOMMU drivers
Date: Thu, 26 Oct 2017 10:11:58 +0000	[thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83844FE04@FRAEML521-MBX.china.huawei.com> (raw)
In-Reply-To: 1d49243a-4746-f189-7c5d-4b98937115fb@arm.com

Hi Lorenzo/Will,

> -----Original Message-----
> From: Shameerali Kolothum Thodi
> Sent: Wednesday, October 18, 2017 3:24 PM
> To: 'Robin Murphy' <robin.murphy@arm.com>; Will Deacon
> <will.deacon@arm.com>
> Cc: lorenzo.pieralisi@arm.com; Gabriele Paoloni
> <gabriele.paoloni@huawei.com>; marc.zyngier@arm.com; linux-
> pci@vger.kernel.org; joro@8bytes.org; John Garry <john.garry@huawei.com>;
> Guohanjun (Hanjun Guo) <guohanjun@huawei.com>; Linuxarm
> <linuxarm@huawei.com>; linux-acpi@vger.kernel.org; iommu@lists.linux-
> foundation.org; Wangzhou (B) <wangzhou1@hisilicon.com>;
> sudeep.holla@arm.com; bhelgaas@google.com; linux-arm-
> kernel@lists.infradead.org; devel@acpica.org
> Subject: RE: [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW
> MSI address regions for IOMMU drivers
> 
> 
> 
> > -----Original Message-----
> > From: Robin Murphy [mailto:robin.murphy@arm.com]
> > Sent: Wednesday, October 18, 2017 1:34 PM
> > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>;
> > Will Deacon <will.deacon@arm.com>
> > Cc: lorenzo.pieralisi@arm.com; Gabriele Paoloni
> > <gabriele.paoloni@huawei.com>; marc.zyngier@arm.com; linux-
> > pci@vger.kernel.org; joro@8bytes.org; John Garry
> > <john.garry@huawei.com>; Guohanjun (Hanjun Guo)
> > <guohanjun@huawei.com>; Linuxarm <linuxarm@huawei.com>;
> > linux-acpi@vger.kernel.org; iommu@lists.linux- foundation.org;
> > Wangzhou (B) <wangzhou1@hisilicon.com>; sudeep.holla@arm.com;
> > bhelgaas@google.com; linux-arm- kernel@lists.infradead.org;
> > devel@acpica.org
> > Subject: Re: [PATCH v9 2/4] iommu/dma: Add a helper function to
> > reserve HW MSI address regions for IOMMU drivers
> >
> > On 16/10/17 17:09, Shameerali Kolothum Thodi wrote:
> > > Hi Robin,
> > >
> > >> -----Original Message-----
> > >> From: Will Deacon [mailto:will.deacon@arm.com]
> > >> Sent: Friday, October 13, 2017 8:24 PM
> > >> To: Shameerali Kolothum Thodi
> > >> <shameerali.kolothum.thodi@huawei.com>
> > >> Cc: lorenzo.pieralisi@arm.com; marc.zyngier@arm.com;
> > >> sudeep.holla@arm.com; robin.murphy@arm.com; joro@8bytes.org;
> > >> bhelgaas@google.com; Gabriele Paoloni
> > >> <gabriele.paoloni@huawei.com>; John Garry <john.garry@huawei.com>;
> > >> iommu@lists.linux-foundation.org;
> > >> linux-arm-kernel@lists.infradead.org; linux-acpi@vger.kernel.org;
> > >> linux- pci@vger.kernel.org; devel@acpica.org; Linuxarm
> > <linuxarm@huawei.com>;
> > >> Wangzhou (B) <wangzhou1@hisilicon.com>; Guohanjun (Hanjun Guo)
> > >> <guohanjun@huawei.com>
> > >> Subject: Re: [PATCH v9 2/4] iommu/dma: Add a helper function to
> > >> reserve
> > HW
> > >> MSI address regions for IOMMU drivers
> > >>
> > >> On Fri, Oct 06, 2017 at 03:04:48PM +0100, Shameer Kolothum wrote:
> > >>> IOMMU drivers can use this to implement their .get_resv_regions
> > >>> callback for HW MSI specific reservations(e.g. ARM GICv3 ITS MSI
> region).
> > >>>
> > >>> Signed-off-by: Shameer Kolothum
> > <shameerali.kolothum.thodi@huawei.com>
> > >>> ---
> > >>>  drivers/iommu/dma-iommu.c | 20 ++++++++++++++++++++
> > >>> include/linux/dma-iommu.h |  7 +++++++
> > >>>  2 files changed, 27 insertions(+)
> > >>
> > >> I'd like to see Robin's Ack on this, because this is his code and
> > >> he had ideas on ways to solve this problem properly.
> > >
> > > Please let us know if it is ok to go ahead with ACPI support for now.
> > > It will help our customers to start using pass-through for PCIe.
> > >
> > > Thanks,
> > > Shameer
> > >
> > >>
> > >> Will
> > >>
> > >>> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> > >>> index 9d1cebe..bae677e 100644
> > >>> --- a/drivers/iommu/dma-iommu.c
> > >>> +++ b/drivers/iommu/dma-iommu.c
> > >>> @@ -19,6 +19,7 @@
> > >>>   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> > >>>   */
> > >>>
> > >>> +#include <linux/acpi_iort.h>
> > >>>  #include <linux/device.h>
> > >>>  #include <linux/dma-iommu.h>
> > >>>  #include <linux/gfp.h>
> > >>> @@ -27,6 +28,7 @@
> > >>>  #include <linux/iova.h>
> > >>>  #include <linux/irq.h>
> > >>>  #include <linux/mm.h>
> > >>> +#include <linux/of_iommu.h>
> > >>>  #include <linux/pci.h>
> > >>>  #include <linux/scatterlist.h>
> > >>>  #include <linux/vmalloc.h>
> > >>> @@ -198,6 +200,24 @@ void iommu_dma_get_resv_regions(struct
> device
> > >> *dev, struct list_head *list)
> > >>>  }
> > >>>  EXPORT_SYMBOL(iommu_dma_get_resv_regions);
> > >>>
> > >>> +/**
> > >>> + * iommu_dma_get_msi_resv_regions - Reserved region driver helper
> > >>> + * @dev: Device from iommu_get_resv_regions()
> > >>> + * @list: Reserved region list from iommu_get_resv_regions()
> > >>> + *
> > >>> + * IOMMU drivers can use this to implement their
> > >>> +.get_resv_regions
> > >>> + * callback for HW MSI specific reservations. For now, this only
> >
> > This doesn't make an awful lot of sense - there's only one reserved
> > region callback, so iommu-dma shouldn't be offering two separate and
> > non-overlapping implementations.
> >
> > >>> + * covers ITS MSI region reservation using ACPI IORT helper function.
> > >>> + */
> > >>> +int iommu_dma_get_msi_resv_regions(struct device *dev, struct
> > list_head
> > >> *list)
> > >>> +{
> > >>> +	if (!is_of_node(dev->iommu_fwspec->iommu_fwnode))
> > >>> +		return iort_iommu_msi_get_resv_regions(dev, list);
> >
> > Either this call knows how to do the right thing for any platform and
> > should be made from iommu_dma_get_reserved_regions() directly, or it's
> > tightly coupled to the HiSilicon quirk in the SMMUv3 driver and
> > iommu-dma doesn't need to know - the middle ground presented here is
> > surely the worst of both worlds.
> 
> Right. I think we have discussed this earlier[1] and had a v4 based on invoking
> the iort_iommu_its_get_resv_regions() within the
> iommu_dma_get_resv_regions().
> But later as you rightly pointed out, we were not checking for platforms which
> requires this quirk inside the iort code and that will break the platforms which
> are happy with MSI translations. Hence moved to the current implementation
> in v6 after this discussion here[2]
> 
> And earlier I think in the v3 version we had the function called from smmu
> driver directly and the feedback was that it should be abstracted from the
> driver.
> 
> May be it is still possible to move the function call inside the
> iommu_dma_get_resv_regions() and do the smmu model check inside  the iort
> helper function and selectively apply the HW MSI reservations.
> 
> But I think it is much neater if we can invoke the iort_get_msi_regions()
> directly from SMMUv3 based on the model.
> 
> Thoughts?

As we still don’t have a clear resolution on how to invoke the 
iort_iommu_msi_get_resv_regions(), I have gone back and attempted to move the
smmu model check inside the iort code. This means the function will selectively
apply HW MSI reservation based on the platform and also the function can be 
invoked from the iommu_dma_get_resv_regions() directly.

Could you please take a look at the below snippet and let me know your feedback.
Hope we can make some progress on this series.

Thanks,
Shameer

-->8--
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 876c0e1..a27233d 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -619,6 +619,39 @@ static int __maybe_unused __get_pci_rid(struct pci_dev *pdev, u16 alias,
 	return 0;
 }
 
+static bool __maybe_unused iort_hw_msi_resv_enable(struct device *dev,
+					struct acpi_iort_node *node)
+{
+	struct acpi_iort_node *iommu = NULL;
+	int i;
+
+	if (dev_is_pci(dev)) {
+		u32 rid;
+
+		pci_for_each_dma_alias(to_pci_dev(dev), __get_pci_rid, &rid);
+		iommu = iort_node_map_id(node, rid, NULL, IORT_IOMMU_TYPE);
+	} else {
+		for (i = 0; i < node->mapping_count; i++) {
+			iommu = iort_node_map_platform_id(node, NULL,
+							IORT_IOMMU_TYPE, i);
+			if (iommu)
+				break;
+		}
+	}
+
+	if (iommu && (iommu->type == ACPI_IORT_NODE_SMMU_V3)) {
+		struct acpi_iort_smmu_v3 *smmu;
+
+		smmu = (struct acpi_iort_smmu_v3 *)iommu->node_data;
+		if (smmu->model == ACPI_IORT_SMMU_V3_HISILICON_HI161X) {
+			dev_notice(dev, "Enabling HiSilicon erratum 161010801\n");
+			return true;
+		}
+	}
+
+	return false;
+}
+
 static int arm_smmu_iort_xlate(struct device *dev, u32 streamid,
 			       struct fwnode_handle *fwnode,
 			       const struct iommu_ops *ops)
@@ -682,6 +715,9 @@ int iort_iommu_msi_get_resv_regions(struct device *dev, struct list_head *head)
 	if (!node)
 		return -ENODEV;
 
+	if (!iort_hw_msi_resv_enable(dev, node))
+		return 0;
+
 	/*
 	 * Current logic to reserve ITS regions relies on HW topologies
 	 * where a given PCI or named component maps its IDs to only one
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 9d1cebe..67c6e30 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -19,6 +19,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <linux/acpi_iort.h>
 #include <linux/device.h>
 #include <linux/dma-iommu.h>
 #include <linux/gfp.h>
@@ -174,6 +175,10 @@ void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list)
 	struct pci_host_bridge *bridge;
 	struct resource_entry *window;
 
+	if (!is_of_node(dev->iommu_fwspec->iommu_fwnode) &&
+		iort_iommu_msi_get_resv_regions(dev, list) < 0)
+		return;
+
 	if (!dev_is_pci(dev))
 		return;
 
diff --git a/include/linux/acpi_iort.h b/include/linux/acpi_iort.h
index 182a577..88f17c9 100644
--- a/include/linux/acpi_iort.h
+++ b/include/linux/acpi_iort.h
@@ -56,7 +56,7 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev)
 { return NULL; }
 static inline
 int iort_iommu_msi_get_resv_regions(struct device *dev, struct list_head *head)
-{ return -ENODEV; }
+{ return 0; }
 #endif
 
 #endif /* __ACPI_IORT_H__ */

-->8--

 


WARNING: multiple messages have this Message-ID (diff)
From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
To: Robin Murphy <robin.murphy@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	"lorenzo.pieralisi@arm.com" <lorenzo.pieralisi@arm.com>
Cc: Gabriele Paoloni <gabriele.paoloni@huawei.com>,
	"marc.zyngier@arm.com" <marc.zyngier@arm.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"joro@8bytes.org" <joro@8bytes.org>,
	John Garry <john.garry@huawei.com>,
	"Guohanjun (Hanjun Guo)" <guohanjun@huawei.com>,
	Linuxarm <linuxarm@huawei.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"Wangzhou (B)" <wangzhou1@hisilicon.com>,
	"sudeep.holla@arm.com" <sudeep.holla@arm.com>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"devel@acpica.org" <devel@acpica.org>
Subject: RE: [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW MSI address regions for IOMMU drivers
Date: Thu, 26 Oct 2017 10:11:58 +0000	[thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83844FE04@FRAEML521-MBX.china.huawei.com> (raw)
In-Reply-To: 1d49243a-4746-f189-7c5d-4b98937115fb@arm.com

SGkgTG9yZW56by9XaWxsLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206
IFNoYW1lZXJhbGkgS29sb3RodW0gVGhvZGkNCj4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDE4
LCAyMDE3IDM6MjQgUE0NCj4gVG86ICdSb2JpbiBNdXJwaHknIDxyb2Jpbi5tdXJwaHlAYXJtLmNv
bT47IFdpbGwgRGVhY29uDQo+IDx3aWxsLmRlYWNvbkBhcm0uY29tPg0KPiBDYzogbG9yZW56by5w
aWVyYWxpc2lAYXJtLmNvbTsgR2FicmllbGUgUGFvbG9uaQ0KPiA8Z2FicmllbGUucGFvbG9uaUBo
dWF3ZWkuY29tPjsgbWFyYy56eW5naWVyQGFybS5jb207IGxpbnV4LQ0KPiBwY2lAdmdlci5rZXJu
ZWwub3JnOyBqb3JvQDhieXRlcy5vcmc7IEpvaG4gR2FycnkgPGpvaG4uZ2FycnlAaHVhd2VpLmNv
bT47DQo+IEd1b2hhbmp1biAoSGFuanVuIEd1bykgPGd1b2hhbmp1bkBodWF3ZWkuY29tPjsgTGlu
dXhhcm0NCj4gPGxpbnV4YXJtQGh1YXdlaS5jb20+OyBsaW51eC1hY3BpQHZnZXIua2VybmVsLm9y
ZzsgaW9tbXVAbGlzdHMubGludXgtDQo+IGZvdW5kYXRpb24ub3JnOyBXYW5nemhvdSAoQikgPHdh
bmd6aG91MUBoaXNpbGljb24uY29tPjsNCj4gc3VkZWVwLmhvbGxhQGFybS5jb207IGJoZWxnYWFz
QGdvb2dsZS5jb207IGxpbnV4LWFybS0NCj4ga2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IGRl
dmVsQGFjcGljYS5vcmcNCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2OSAyLzRdIGlvbW11L2RtYTog
QWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJlc2VydmUgSFcNCj4gTVNJIGFkZHJlc3MgcmVnaW9u
cyBmb3IgSU9NTVUgZHJpdmVycw0KPiANCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn
ZS0tLS0tDQo+ID4gRnJvbTogUm9iaW4gTXVycGh5IFttYWlsdG86cm9iaW4ubXVycGh5QGFybS5j
b21dDQo+ID4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDE4LCAyMDE3IDE6MzQgUE0NCj4gPiBU
bzogU2hhbWVlcmFsaSBLb2xvdGh1bSBUaG9kaSA8c2hhbWVlcmFsaS5rb2xvdGh1bS50aG9kaUBo
dWF3ZWkuY29tPjsNCj4gPiBXaWxsIERlYWNvbiA8d2lsbC5kZWFjb25AYXJtLmNvbT4NCj4gPiBD
YzogbG9yZW56by5waWVyYWxpc2lAYXJtLmNvbTsgR2FicmllbGUgUGFvbG9uaQ0KPiA+IDxnYWJy
aWVsZS5wYW9sb25pQGh1YXdlaS5jb20+OyBtYXJjLnp5bmdpZXJAYXJtLmNvbTsgbGludXgtDQo+
ID4gcGNpQHZnZXIua2VybmVsLm9yZzsgam9yb0A4Ynl0ZXMub3JnOyBKb2huIEdhcnJ5DQo+ID4g
PGpvaG4uZ2FycnlAaHVhd2VpLmNvbT47IEd1b2hhbmp1biAoSGFuanVuIEd1bykNCj4gPiA8Z3Vv
aGFuanVuQGh1YXdlaS5jb20+OyBMaW51eGFybSA8bGludXhhcm1AaHVhd2VpLmNvbT47DQo+ID4g
bGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmc7IGlvbW11QGxpc3RzLmxpbnV4LSBmb3VuZGF0aW9u
Lm9yZzsNCj4gPiBXYW5nemhvdSAoQikgPHdhbmd6aG91MUBoaXNpbGljb24uY29tPjsgc3VkZWVw
LmhvbGxhQGFybS5jb207DQo+ID4gYmhlbGdhYXNAZ29vZ2xlLmNvbTsgbGludXgtYXJtLSBrZXJu
ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsNCj4gPiBkZXZlbEBhY3BpY2Eub3JnDQo+ID4gU3ViamVj
dDogUmU6IFtQQVRDSCB2OSAyLzRdIGlvbW11L2RtYTogQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRv
DQo+ID4gcmVzZXJ2ZSBIVyBNU0kgYWRkcmVzcyByZWdpb25zIGZvciBJT01NVSBkcml2ZXJzDQo+
ID4NCj4gPiBPbiAxNi8xMC8xNyAxNzowOSwgU2hhbWVlcmFsaSBLb2xvdGh1bSBUaG9kaSB3cm90
ZToNCj4gPiA+IEhpIFJvYmluLA0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KPiA+ID4+IEZyb206IFdpbGwgRGVhY29uIFttYWlsdG86d2lsbC5kZWFjb25AYXJtLmNv
bV0NCj4gPiA+PiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMTMsIDIwMTcgODoyNCBQTQ0KPiA+ID4+
IFRvOiBTaGFtZWVyYWxpIEtvbG90aHVtIFRob2RpDQo+ID4gPj4gPHNoYW1lZXJhbGkua29sb3Ro
dW0udGhvZGlAaHVhd2VpLmNvbT4NCj4gPiA+PiBDYzogbG9yZW56by5waWVyYWxpc2lAYXJtLmNv
bTsgbWFyYy56eW5naWVyQGFybS5jb207DQo+ID4gPj4gc3VkZWVwLmhvbGxhQGFybS5jb207IHJv
YmluLm11cnBoeUBhcm0uY29tOyBqb3JvQDhieXRlcy5vcmc7DQo+ID4gPj4gYmhlbGdhYXNAZ29v
Z2xlLmNvbTsgR2FicmllbGUgUGFvbG9uaQ0KPiA+ID4+IDxnYWJyaWVsZS5wYW9sb25pQGh1YXdl
aS5jb20+OyBKb2huIEdhcnJ5IDxqb2huLmdhcnJ5QGh1YXdlaS5jb20+Ow0KPiA+ID4+IGlvbW11
QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnOw0KPiA+ID4+IGxpbnV4LWFybS1rZXJuZWxAbGlz
dHMuaW5mcmFkZWFkLm9yZzsgbGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4gPj4gbGlu
dXgtIHBjaUB2Z2VyLmtlcm5lbC5vcmc7IGRldmVsQGFjcGljYS5vcmc7IExpbnV4YXJtDQo+ID4g
PGxpbnV4YXJtQGh1YXdlaS5jb20+Ow0KPiA+ID4+IFdhbmd6aG91IChCKSA8d2FuZ3pob3UxQGhp
c2lsaWNvbi5jb20+OyBHdW9oYW5qdW4gKEhhbmp1biBHdW8pDQo+ID4gPj4gPGd1b2hhbmp1bkBo
dWF3ZWkuY29tPg0KPiA+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjkgMi80XSBpb21tdS9kbWE6
IEFkZCBhIGhlbHBlciBmdW5jdGlvbiB0bw0KPiA+ID4+IHJlc2VydmUNCj4gPiBIVw0KPiA+ID4+
IE1TSSBhZGRyZXNzIHJlZ2lvbnMgZm9yIElPTU1VIGRyaXZlcnMNCj4gPiA+Pg0KPiA+ID4+IE9u
IEZyaSwgT2N0IDA2LCAyMDE3IGF0IDAzOjA0OjQ4UE0gKzAxMDAsIFNoYW1lZXIgS29sb3RodW0g
d3JvdGU6DQo+ID4gPj4+IElPTU1VIGRyaXZlcnMgY2FuIHVzZSB0aGlzIHRvIGltcGxlbWVudCB0
aGVpciAuZ2V0X3Jlc3ZfcmVnaW9ucw0KPiA+ID4+PiBjYWxsYmFjayBmb3IgSFcgTVNJIHNwZWNp
ZmljIHJlc2VydmF0aW9ucyhlLmcuIEFSTSBHSUN2MyBJVFMgTVNJDQo+IHJlZ2lvbikuDQo+ID4g
Pj4+DQo+ID4gPj4+IFNpZ25lZC1vZmYtYnk6IFNoYW1lZXIgS29sb3RodW0NCj4gPiA8c2hhbWVl
cmFsaS5rb2xvdGh1bS50aG9kaUBodWF3ZWkuY29tPg0KPiA+ID4+PiAtLS0NCj4gPiA+Pj4gIGRy
aXZlcnMvaW9tbXUvZG1hLWlvbW11LmMgfCAyMCArKysrKysrKysrKysrKysrKysrKw0KPiA+ID4+
PiBpbmNsdWRlL2xpbnV4L2RtYS1pb21tdS5oIHwgIDcgKysrKysrKw0KPiA+ID4+PiAgMiBmaWxl
cyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspDQo+ID4gPj4NCj4gPiA+PiBJJ2QgbGlrZSB0byBz
ZWUgUm9iaW4ncyBBY2sgb24gdGhpcywgYmVjYXVzZSB0aGlzIGlzIGhpcyBjb2RlIGFuZA0KPiA+
ID4+IGhlIGhhZCBpZGVhcyBvbiB3YXlzIHRvIHNvbHZlIHRoaXMgcHJvYmxlbSBwcm9wZXJseS4N
Cj4gPiA+DQo+ID4gPiBQbGVhc2UgbGV0IHVzIGtub3cgaWYgaXQgaXMgb2sgdG8gZ28gYWhlYWQg
d2l0aCBBQ1BJIHN1cHBvcnQgZm9yIG5vdy4NCj4gPiA+IEl0IHdpbGwgaGVscCBvdXIgY3VzdG9t
ZXJzIHRvIHN0YXJ0IHVzaW5nIHBhc3MtdGhyb3VnaCBmb3IgUENJZS4NCj4gPiA+DQo+ID4gPiBU
aGFua3MsDQo+ID4gPiBTaGFtZWVyDQo+ID4gPg0KPiA+ID4+DQo+ID4gPj4gV2lsbA0KPiA+ID4+
DQo+ID4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2RtYS1pb21tdS5jIGIvZHJpdmVy
cy9pb21tdS9kbWEtaW9tbXUuYw0KPiA+ID4+PiBpbmRleCA5ZDFjZWJlLi5iYWU2NzdlIDEwMDY0
NA0KPiA+ID4+PiAtLS0gYS9kcml2ZXJzL2lvbW11L2RtYS1pb21tdS5jDQo+ID4gPj4+ICsrKyBi
L2RyaXZlcnMvaW9tbXUvZG1hLWlvbW11LmMNCj4gPiA+Pj4gQEAgLTE5LDYgKzE5LDcgQEANCj4g
PiA+Pj4gICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93
d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiA+ID4+PiAgICovDQo+ID4gPj4+DQo+ID4gPj4+ICsj
aW5jbHVkZSA8bGludXgvYWNwaV9pb3J0Lmg+DQo+ID4gPj4+ICAjaW5jbHVkZSA8bGludXgvZGV2
aWNlLmg+DQo+ID4gPj4+ICAjaW5jbHVkZSA8bGludXgvZG1hLWlvbW11Lmg+DQo+ID4gPj4+ICAj
aW5jbHVkZSA8bGludXgvZ2ZwLmg+DQo+ID4gPj4+IEBAIC0yNyw2ICsyOCw3IEBADQo+ID4gPj4+
ICAjaW5jbHVkZSA8bGludXgvaW92YS5oPg0KPiA+ID4+PiAgI2luY2x1ZGUgPGxpbnV4L2lycS5o
Pg0KPiA+ID4+PiAgI2luY2x1ZGUgPGxpbnV4L21tLmg+DQo+ID4gPj4+ICsjaW5jbHVkZSA8bGlu
dXgvb2ZfaW9tbXUuaD4NCj4gPiA+Pj4gICNpbmNsdWRlIDxsaW51eC9wY2kuaD4NCj4gPiA+Pj4g
ICNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPg0KPiA+ID4+PiAgI2luY2x1ZGUgPGxpbnV4
L3ZtYWxsb2MuaD4NCj4gPiA+Pj4gQEAgLTE5OCw2ICsyMDAsMjQgQEAgdm9pZCBpb21tdV9kbWFf
Z2V0X3Jlc3ZfcmVnaW9ucyhzdHJ1Y3QNCj4gZGV2aWNlDQo+ID4gPj4gKmRldiwgc3RydWN0IGxp
c3RfaGVhZCAqbGlzdCkNCj4gPiA+Pj4gIH0NCj4gPiA+Pj4gIEVYUE9SVF9TWU1CT0woaW9tbXVf
ZG1hX2dldF9yZXN2X3JlZ2lvbnMpOw0KPiA+ID4+Pg0KPiA+ID4+PiArLyoqDQo+ID4gPj4+ICsg
KiBpb21tdV9kbWFfZ2V0X21zaV9yZXN2X3JlZ2lvbnMgLSBSZXNlcnZlZCByZWdpb24gZHJpdmVy
IGhlbHBlcg0KPiA+ID4+PiArICogQGRldjogRGV2aWNlIGZyb20gaW9tbXVfZ2V0X3Jlc3ZfcmVn
aW9ucygpDQo+ID4gPj4+ICsgKiBAbGlzdDogUmVzZXJ2ZWQgcmVnaW9uIGxpc3QgZnJvbSBpb21t
dV9nZXRfcmVzdl9yZWdpb25zKCkNCj4gPiA+Pj4gKyAqDQo+ID4gPj4+ICsgKiBJT01NVSBkcml2
ZXJzIGNhbiB1c2UgdGhpcyB0byBpbXBsZW1lbnQgdGhlaXINCj4gPiA+Pj4gKy5nZXRfcmVzdl9y
ZWdpb25zDQo+ID4gPj4+ICsgKiBjYWxsYmFjayBmb3IgSFcgTVNJIHNwZWNpZmljIHJlc2VydmF0
aW9ucy4gRm9yIG5vdywgdGhpcyBvbmx5DQo+ID4NCj4gPiBUaGlzIGRvZXNuJ3QgbWFrZSBhbiBh
d2Z1bCBsb3Qgb2Ygc2Vuc2UgLSB0aGVyZSdzIG9ubHkgb25lIHJlc2VydmVkDQo+ID4gcmVnaW9u
IGNhbGxiYWNrLCBzbyBpb21tdS1kbWEgc2hvdWxkbid0IGJlIG9mZmVyaW5nIHR3byBzZXBhcmF0
ZSBhbmQNCj4gPiBub24tb3ZlcmxhcHBpbmcgaW1wbGVtZW50YXRpb25zLg0KPiA+DQo+ID4gPj4+
ICsgKiBjb3ZlcnMgSVRTIE1TSSByZWdpb24gcmVzZXJ2YXRpb24gdXNpbmcgQUNQSSBJT1JUIGhl
bHBlciBmdW5jdGlvbi4NCj4gPiA+Pj4gKyAqLw0KPiA+ID4+PiAraW50IGlvbW11X2RtYV9nZXRf
bXNpX3Jlc3ZfcmVnaW9ucyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdA0KPiA+IGxpc3RfaGVh
ZA0KPiA+ID4+ICpsaXN0KQ0KPiA+ID4+PiArew0KPiA+ID4+PiArCWlmICghaXNfb2Zfbm9kZShk
ZXYtPmlvbW11X2Z3c3BlYy0+aW9tbXVfZndub2RlKSkNCj4gPiA+Pj4gKwkJcmV0dXJuIGlvcnRf
aW9tbXVfbXNpX2dldF9yZXN2X3JlZ2lvbnMoZGV2LCBsaXN0KTsNCj4gPg0KPiA+IEVpdGhlciB0
aGlzIGNhbGwga25vd3MgaG93IHRvIGRvIHRoZSByaWdodCB0aGluZyBmb3IgYW55IHBsYXRmb3Jt
IGFuZA0KPiA+IHNob3VsZCBiZSBtYWRlIGZyb20gaW9tbXVfZG1hX2dldF9yZXNlcnZlZF9yZWdp
b25zKCkgZGlyZWN0bHksIG9yIGl0J3MNCj4gPiB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIEhpU2ls
aWNvbiBxdWlyayBpbiB0aGUgU01NVXYzIGRyaXZlciBhbmQNCj4gPiBpb21tdS1kbWEgZG9lc24n
dCBuZWVkIHRvIGtub3cgLSB0aGUgbWlkZGxlIGdyb3VuZCBwcmVzZW50ZWQgaGVyZSBpcw0KPiA+
IHN1cmVseSB0aGUgd29yc3Qgb2YgYm90aCB3b3JsZHMuDQo+IA0KPiBSaWdodC4gSSB0aGluayB3
ZSBoYXZlIGRpc2N1c3NlZCB0aGlzIGVhcmxpZXJbMV0gYW5kIGhhZCBhIHY0IGJhc2VkIG9uIGlu
dm9raW5nDQo+IHRoZSBpb3J0X2lvbW11X2l0c19nZXRfcmVzdl9yZWdpb25zKCkgd2l0aGluIHRo
ZQ0KPiBpb21tdV9kbWFfZ2V0X3Jlc3ZfcmVnaW9ucygpLg0KPiBCdXQgbGF0ZXIgYXMgeW91IHJp
Z2h0bHkgcG9pbnRlZCBvdXQsIHdlIHdlcmUgbm90IGNoZWNraW5nIGZvciBwbGF0Zm9ybXMgd2hp
Y2gNCj4gcmVxdWlyZXMgdGhpcyBxdWlyayBpbnNpZGUgdGhlIGlvcnQgY29kZSBhbmQgdGhhdCB3
aWxsIGJyZWFrIHRoZSBwbGF0Zm9ybXMgd2hpY2gNCj4gYXJlIGhhcHB5IHdpdGggTVNJIHRyYW5z
bGF0aW9ucy4gSGVuY2UgbW92ZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24NCj4gaW4g
djYgYWZ0ZXIgdGhpcyBkaXNjdXNzaW9uIGhlcmVbMl0NCj4gDQo+IEFuZCBlYXJsaWVyIEkgdGhp
bmsgaW4gdGhlIHYzIHZlcnNpb24gd2UgaGFkIHRoZSBmdW5jdGlvbiBjYWxsZWQgZnJvbSBzbW11
DQo+IGRyaXZlciBkaXJlY3RseSBhbmQgdGhlIGZlZWRiYWNrIHdhcyB0aGF0IGl0IHNob3VsZCBi
ZSBhYnN0cmFjdGVkIGZyb20gdGhlDQo+IGRyaXZlci4NCj4gDQo+IE1heSBiZSBpdCBpcyBzdGls
bCBwb3NzaWJsZSB0byBtb3ZlIHRoZSBmdW5jdGlvbiBjYWxsIGluc2lkZSB0aGUNCj4gaW9tbXVf
ZG1hX2dldF9yZXN2X3JlZ2lvbnMoKSBhbmQgZG8gdGhlIHNtbXUgbW9kZWwgY2hlY2sgaW5zaWRl
ICB0aGUgaW9ydA0KPiBoZWxwZXIgZnVuY3Rpb24gYW5kIHNlbGVjdGl2ZWx5IGFwcGx5IHRoZSBI
VyBNU0kgcmVzZXJ2YXRpb25zLg0KPiANCj4gQnV0IEkgdGhpbmsgaXQgaXMgbXVjaCBuZWF0ZXIg
aWYgd2UgY2FuIGludm9rZSB0aGUgaW9ydF9nZXRfbXNpX3JlZ2lvbnMoKQ0KPiBkaXJlY3RseSBm
cm9tIFNNTVV2MyBiYXNlZCBvbiB0aGUgbW9kZWwuDQo+IA0KPiBUaG91Z2h0cz8NCg0KQXMgd2Ug
c3RpbGwgZG9u4oCZdCBoYXZlIGEgY2xlYXIgcmVzb2x1dGlvbiBvbiBob3cgdG8gaW52b2tlIHRo
ZSANCmlvcnRfaW9tbXVfbXNpX2dldF9yZXN2X3JlZ2lvbnMoKSwgSSBoYXZlIGdvbmUgYmFjayBh
bmQgYXR0ZW1wdGVkIHRvIG1vdmUgdGhlDQpzbW11IG1vZGVsIGNoZWNrIGluc2lkZSB0aGUgaW9y
dCBjb2RlLiBUaGlzIG1lYW5zIHRoZSBmdW5jdGlvbiB3aWxsIHNlbGVjdGl2ZWx5DQphcHBseSBI
VyBNU0kgcmVzZXJ2YXRpb24gYmFzZWQgb24gdGhlIHBsYXRmb3JtIGFuZCBhbHNvIHRoZSBmdW5j
dGlvbiBjYW4gYmUgDQppbnZva2VkIGZyb20gdGhlIGlvbW11X2RtYV9nZXRfcmVzdl9yZWdpb25z
KCkgZGlyZWN0bHkuDQoNCkNvdWxkIHlvdSBwbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIGJlbG93
IHNuaXBwZXQgYW5kIGxldCBtZSBrbm93IHlvdXIgZmVlZGJhY2suDQpIb3BlIHdlIGNhbiBtYWtl
IHNvbWUgcHJvZ3Jlc3Mgb24gdGhpcyBzZXJpZXMuDQoNClRoYW5rcywNClNoYW1lZXINCg0KLS0+
OC0tDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FybTY0L2lvcnQuYyBiL2RyaXZlcnMvYWNw
aS9hcm02NC9pb3J0LmMNCmluZGV4IDg3NmMwZTEuLmEyNzIzM2QgMTAwNjQ0DQotLS0gYS9kcml2
ZXJzL2FjcGkvYXJtNjQvaW9ydC5jDQorKysgYi9kcml2ZXJzL2FjcGkvYXJtNjQvaW9ydC5jDQpA
QCAtNjE5LDYgKzYxOSwzOSBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIF9fZ2V0X3BjaV9y
aWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHUxNiBhbGlhcywNCiAJcmV0dXJuIDA7DQogfQ0KIA0K
K3N0YXRpYyBib29sIF9fbWF5YmVfdW51c2VkIGlvcnRfaHdfbXNpX3Jlc3ZfZW5hYmxlKHN0cnVj
dCBkZXZpY2UgKmRldiwNCisJCQkJCXN0cnVjdCBhY3BpX2lvcnRfbm9kZSAqbm9kZSkNCit7DQor
CXN0cnVjdCBhY3BpX2lvcnRfbm9kZSAqaW9tbXUgPSBOVUxMOw0KKwlpbnQgaTsNCisNCisJaWYg
KGRldl9pc19wY2koZGV2KSkgew0KKwkJdTMyIHJpZDsNCisNCisJCXBjaV9mb3JfZWFjaF9kbWFf
YWxpYXModG9fcGNpX2RldihkZXYpLCBfX2dldF9wY2lfcmlkLCAmcmlkKTsNCisJCWlvbW11ID0g
aW9ydF9ub2RlX21hcF9pZChub2RlLCByaWQsIE5VTEwsIElPUlRfSU9NTVVfVFlQRSk7DQorCX0g
ZWxzZSB7DQorCQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bWFwcGluZ19jb3VudDsgaSsrKSB7DQor
CQkJaW9tbXUgPSBpb3J0X25vZGVfbWFwX3BsYXRmb3JtX2lkKG5vZGUsIE5VTEwsDQorCQkJCQkJ
CUlPUlRfSU9NTVVfVFlQRSwgaSk7DQorCQkJaWYgKGlvbW11KQ0KKwkJCQlicmVhazsNCisJCX0N
CisJfQ0KKw0KKwlpZiAoaW9tbXUgJiYgKGlvbW11LT50eXBlID09IEFDUElfSU9SVF9OT0RFX1NN
TVVfVjMpKSB7DQorCQlzdHJ1Y3QgYWNwaV9pb3J0X3NtbXVfdjMgKnNtbXU7DQorDQorCQlzbW11
ID0gKHN0cnVjdCBhY3BpX2lvcnRfc21tdV92MyAqKWlvbW11LT5ub2RlX2RhdGE7DQorCQlpZiAo
c21tdS0+bW9kZWwgPT0gQUNQSV9JT1JUX1NNTVVfVjNfSElTSUxJQ09OX0hJMTYxWCkgew0KKwkJ
CWRldl9ub3RpY2UoZGV2LCAiRW5hYmxpbmcgSGlTaWxpY29uIGVycmF0dW0gMTYxMDEwODAxXG4i
KTsNCisJCQlyZXR1cm4gdHJ1ZTsNCisJCX0NCisJfQ0KKw0KKwlyZXR1cm4gZmFsc2U7DQorfQ0K
Kw0KIHN0YXRpYyBpbnQgYXJtX3NtbXVfaW9ydF94bGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHUz
MiBzdHJlYW1pZCwNCiAJCQkgICAgICAgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwNCiAJ
CQkgICAgICAgY29uc3Qgc3RydWN0IGlvbW11X29wcyAqb3BzKQ0KQEAgLTY4Miw2ICs3MTUsOSBA
QCBpbnQgaW9ydF9pb21tdV9tc2lfZ2V0X3Jlc3ZfcmVnaW9ucyhzdHJ1Y3QgZGV2aWNlICpkZXYs
IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpDQogCWlmICghbm9kZSkNCiAJCXJldHVybiAtRU5PREVW
Ow0KIA0KKwlpZiAoIWlvcnRfaHdfbXNpX3Jlc3ZfZW5hYmxlKGRldiwgbm9kZSkpDQorCQlyZXR1
cm4gMDsNCisNCiAJLyoNCiAJICogQ3VycmVudCBsb2dpYyB0byByZXNlcnZlIElUUyByZWdpb25z
IHJlbGllcyBvbiBIVyB0b3BvbG9naWVzDQogCSAqIHdoZXJlIGEgZ2l2ZW4gUENJIG9yIG5hbWVk
IGNvbXBvbmVudCBtYXBzIGl0cyBJRHMgdG8gb25seSBvbmUNCmRpZmYgLS1naXQgYS9kcml2ZXJz
L2lvbW11L2RtYS1pb21tdS5jIGIvZHJpdmVycy9pb21tdS9kbWEtaW9tbXUuYw0KaW5kZXggOWQx
Y2ViZS4uNjdjNmUzMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW9tbXUvZG1hLWlvbW11LmMNCisr
KyBiL2RyaXZlcnMvaW9tbXUvZG1hLWlvbW11LmMNCkBAIC0xOSw2ICsxOSw3IEBADQogICogYWxv
bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp
Y2Vuc2VzLz4uDQogICovDQogDQorI2luY2x1ZGUgPGxpbnV4L2FjcGlfaW9ydC5oPg0KICNpbmNs
dWRlIDxsaW51eC9kZXZpY2UuaD4NCiAjaW5jbHVkZSA8bGludXgvZG1hLWlvbW11Lmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L2dmcC5oPg0KQEAgLTE3NCw2ICsxNzUsMTAgQEAgdm9pZCBpb21tdV9kbWFf
Z2V0X3Jlc3ZfcmVnaW9ucyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmxp
c3QpDQogCXN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZTsNCiAJc3RydWN0IHJlc291cmNl
X2VudHJ5ICp3aW5kb3c7DQogDQorCWlmICghaXNfb2Zfbm9kZShkZXYtPmlvbW11X2Z3c3BlYy0+
aW9tbXVfZndub2RlKSAmJg0KKwkJaW9ydF9pb21tdV9tc2lfZ2V0X3Jlc3ZfcmVnaW9ucyhkZXYs
IGxpc3QpIDwgMCkNCisJCXJldHVybjsNCisNCiAJaWYgKCFkZXZfaXNfcGNpKGRldikpDQogCQly
ZXR1cm47DQogDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hY3BpX2lvcnQuaCBiL2luY2x1
ZGUvbGludXgvYWNwaV9pb3J0LmgNCmluZGV4IDE4MmE1NzcuLjg4ZjE3YzkgMTAwNjQ0DQotLS0g
YS9pbmNsdWRlL2xpbnV4L2FjcGlfaW9ydC5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2FjcGlfaW9y
dC5oDQpAQCAtNTYsNyArNTYsNyBAQCBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICppb3J0X2lvbW11
X2NvbmZpZ3VyZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogeyByZXR1cm4gTlVMTDsgfQ0KIHN0YXRp
YyBpbmxpbmUNCiBpbnQgaW9ydF9pb21tdV9tc2lfZ2V0X3Jlc3ZfcmVnaW9ucyhzdHJ1Y3QgZGV2
aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpDQoteyByZXR1cm4gLUVOT0RFVjsgfQ0K
K3sgcmV0dXJuIDA7IH0NCiAjZW5kaWYNCiANCiAjZW5kaWYgLyogX19BQ1BJX0lPUlRfSF9fICov
DQoNCi0tPjgtLQ0KDQogDQoNCg==

WARNING: multiple messages have this Message-ID (diff)
From: shameerali.kolothum.thodi@huawei.com (Shameerali Kolothum Thodi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW MSI address regions for IOMMU drivers
Date: Thu, 26 Oct 2017 10:11:58 +0000	[thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83844FE04@FRAEML521-MBX.china.huawei.com> (raw)
In-Reply-To: 1d49243a-4746-f189-7c5d-4b98937115fb@arm.com

Hi Lorenzo/Will,

> -----Original Message-----
> From: Shameerali Kolothum Thodi
> Sent: Wednesday, October 18, 2017 3:24 PM
> To: 'Robin Murphy' <robin.murphy@arm.com>; Will Deacon
> <will.deacon@arm.com>
> Cc: lorenzo.pieralisi at arm.com; Gabriele Paoloni
> <gabriele.paoloni@huawei.com>; marc.zyngier at arm.com; linux-
> pci at vger.kernel.org; joro at 8bytes.org; John Garry <john.garry@huawei.com>;
> Guohanjun (Hanjun Guo) <guohanjun@huawei.com>; Linuxarm
> <linuxarm@huawei.com>; linux-acpi at vger.kernel.org; iommu at lists.linux-
> foundation.org; Wangzhou (B) <wangzhou1@hisilicon.com>;
> sudeep.holla at arm.com; bhelgaas at google.com; linux-arm-
> kernel at lists.infradead.org; devel at acpica.org
> Subject: RE: [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW
> MSI address regions for IOMMU drivers
> 
> 
> 
> > -----Original Message-----
> > From: Robin Murphy [mailto:robin.murphy at arm.com]
> > Sent: Wednesday, October 18, 2017 1:34 PM
> > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>;
> > Will Deacon <will.deacon@arm.com>
> > Cc: lorenzo.pieralisi at arm.com; Gabriele Paoloni
> > <gabriele.paoloni@huawei.com>; marc.zyngier at arm.com; linux-
> > pci at vger.kernel.org; joro at 8bytes.org; John Garry
> > <john.garry@huawei.com>; Guohanjun (Hanjun Guo)
> > <guohanjun@huawei.com>; Linuxarm <linuxarm@huawei.com>;
> > linux-acpi at vger.kernel.org; iommu at lists.linux- foundation.org;
> > Wangzhou (B) <wangzhou1@hisilicon.com>; sudeep.holla at arm.com;
> > bhelgaas at google.com; linux-arm- kernel at lists.infradead.org;
> > devel at acpica.org
> > Subject: Re: [PATCH v9 2/4] iommu/dma: Add a helper function to
> > reserve HW MSI address regions for IOMMU drivers
> >
> > On 16/10/17 17:09, Shameerali Kolothum Thodi wrote:
> > > Hi Robin,
> > >
> > >> -----Original Message-----
> > >> From: Will Deacon [mailto:will.deacon at arm.com]
> > >> Sent: Friday, October 13, 2017 8:24 PM
> > >> To: Shameerali Kolothum Thodi
> > >> <shameerali.kolothum.thodi@huawei.com>
> > >> Cc: lorenzo.pieralisi at arm.com; marc.zyngier at arm.com;
> > >> sudeep.holla at arm.com; robin.murphy at arm.com; joro at 8bytes.org;
> > >> bhelgaas at google.com; Gabriele Paoloni
> > >> <gabriele.paoloni@huawei.com>; John Garry <john.garry@huawei.com>;
> > >> iommu at lists.linux-foundation.org;
> > >> linux-arm-kernel at lists.infradead.org; linux-acpi at vger.kernel.org;
> > >> linux- pci at vger.kernel.org; devel at acpica.org; Linuxarm
> > <linuxarm@huawei.com>;
> > >> Wangzhou (B) <wangzhou1@hisilicon.com>; Guohanjun (Hanjun Guo)
> > >> <guohanjun@huawei.com>
> > >> Subject: Re: [PATCH v9 2/4] iommu/dma: Add a helper function to
> > >> reserve
> > HW
> > >> MSI address regions for IOMMU drivers
> > >>
> > >> On Fri, Oct 06, 2017 at 03:04:48PM +0100, Shameer Kolothum wrote:
> > >>> IOMMU drivers can use this to implement their .get_resv_regions
> > >>> callback for HW MSI specific reservations(e.g. ARM GICv3 ITS MSI
> region).
> > >>>
> > >>> Signed-off-by: Shameer Kolothum
> > <shameerali.kolothum.thodi@huawei.com>
> > >>> ---
> > >>>  drivers/iommu/dma-iommu.c | 20 ++++++++++++++++++++
> > >>> include/linux/dma-iommu.h |  7 +++++++
> > >>>  2 files changed, 27 insertions(+)
> > >>
> > >> I'd like to see Robin's Ack on this, because this is his code and
> > >> he had ideas on ways to solve this problem properly.
> > >
> > > Please let us know if it is ok to go ahead with ACPI support for now.
> > > It will help our customers to start using pass-through for PCIe.
> > >
> > > Thanks,
> > > Shameer
> > >
> > >>
> > >> Will
> > >>
> > >>> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> > >>> index 9d1cebe..bae677e 100644
> > >>> --- a/drivers/iommu/dma-iommu.c
> > >>> +++ b/drivers/iommu/dma-iommu.c
> > >>> @@ -19,6 +19,7 @@
> > >>>   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> > >>>   */
> > >>>
> > >>> +#include <linux/acpi_iort.h>
> > >>>  #include <linux/device.h>
> > >>>  #include <linux/dma-iommu.h>
> > >>>  #include <linux/gfp.h>
> > >>> @@ -27,6 +28,7 @@
> > >>>  #include <linux/iova.h>
> > >>>  #include <linux/irq.h>
> > >>>  #include <linux/mm.h>
> > >>> +#include <linux/of_iommu.h>
> > >>>  #include <linux/pci.h>
> > >>>  #include <linux/scatterlist.h>
> > >>>  #include <linux/vmalloc.h>
> > >>> @@ -198,6 +200,24 @@ void iommu_dma_get_resv_regions(struct
> device
> > >> *dev, struct list_head *list)
> > >>>  }
> > >>>  EXPORT_SYMBOL(iommu_dma_get_resv_regions);
> > >>>
> > >>> +/**
> > >>> + * iommu_dma_get_msi_resv_regions - Reserved region driver helper
> > >>> + * @dev: Device from iommu_get_resv_regions()
> > >>> + * @list: Reserved region list from iommu_get_resv_regions()
> > >>> + *
> > >>> + * IOMMU drivers can use this to implement their
> > >>> +.get_resv_regions
> > >>> + * callback for HW MSI specific reservations. For now, this only
> >
> > This doesn't make an awful lot of sense - there's only one reserved
> > region callback, so iommu-dma shouldn't be offering two separate and
> > non-overlapping implementations.
> >
> > >>> + * covers ITS MSI region reservation using ACPI IORT helper function.
> > >>> + */
> > >>> +int iommu_dma_get_msi_resv_regions(struct device *dev, struct
> > list_head
> > >> *list)
> > >>> +{
> > >>> +	if (!is_of_node(dev->iommu_fwspec->iommu_fwnode))
> > >>> +		return iort_iommu_msi_get_resv_regions(dev, list);
> >
> > Either this call knows how to do the right thing for any platform and
> > should be made from iommu_dma_get_reserved_regions() directly, or it's
> > tightly coupled to the HiSilicon quirk in the SMMUv3 driver and
> > iommu-dma doesn't need to know - the middle ground presented here is
> > surely the worst of both worlds.
> 
> Right. I think we have discussed this earlier[1] and had a v4 based on invoking
> the iort_iommu_its_get_resv_regions() within the
> iommu_dma_get_resv_regions().
> But later as you rightly pointed out, we were not checking for platforms which
> requires this quirk inside the iort code and that will break the platforms which
> are happy with MSI translations. Hence moved to the current implementation
> in v6 after this discussion here[2]
> 
> And earlier I think in the v3 version we had the function called from smmu
> driver directly and the feedback was that it should be abstracted from the
> driver.
> 
> May be it is still possible to move the function call inside the
> iommu_dma_get_resv_regions() and do the smmu model check inside  the iort
> helper function and selectively apply the HW MSI reservations.
> 
> But I think it is much neater if we can invoke the iort_get_msi_regions()
> directly from SMMUv3 based on the model.
> 
> Thoughts?

As we still don?t have a clear resolution on how to invoke the 
iort_iommu_msi_get_resv_regions(), I have gone back and attempted to move the
smmu model check inside the iort code. This means the function will selectively
apply HW MSI reservation based on the platform and also the function can be 
invoked from the iommu_dma_get_resv_regions() directly.

Could you please take a look at the below snippet and let me know your feedback.
Hope we can make some progress on this series.

Thanks,
Shameer

-->8--
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 876c0e1..a27233d 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -619,6 +619,39 @@ static int __maybe_unused __get_pci_rid(struct pci_dev *pdev, u16 alias,
 	return 0;
 }
 
+static bool __maybe_unused iort_hw_msi_resv_enable(struct device *dev,
+					struct acpi_iort_node *node)
+{
+	struct acpi_iort_node *iommu = NULL;
+	int i;
+
+	if (dev_is_pci(dev)) {
+		u32 rid;
+
+		pci_for_each_dma_alias(to_pci_dev(dev), __get_pci_rid, &rid);
+		iommu = iort_node_map_id(node, rid, NULL, IORT_IOMMU_TYPE);
+	} else {
+		for (i = 0; i < node->mapping_count; i++) {
+			iommu = iort_node_map_platform_id(node, NULL,
+							IORT_IOMMU_TYPE, i);
+			if (iommu)
+				break;
+		}
+	}
+
+	if (iommu && (iommu->type == ACPI_IORT_NODE_SMMU_V3)) {
+		struct acpi_iort_smmu_v3 *smmu;
+
+		smmu = (struct acpi_iort_smmu_v3 *)iommu->node_data;
+		if (smmu->model == ACPI_IORT_SMMU_V3_HISILICON_HI161X) {
+			dev_notice(dev, "Enabling HiSilicon erratum 161010801\n");
+			return true;
+		}
+	}
+
+	return false;
+}
+
 static int arm_smmu_iort_xlate(struct device *dev, u32 streamid,
 			       struct fwnode_handle *fwnode,
 			       const struct iommu_ops *ops)
@@ -682,6 +715,9 @@ int iort_iommu_msi_get_resv_regions(struct device *dev, struct list_head *head)
 	if (!node)
 		return -ENODEV;
 
+	if (!iort_hw_msi_resv_enable(dev, node))
+		return 0;
+
 	/*
 	 * Current logic to reserve ITS regions relies on HW topologies
 	 * where a given PCI or named component maps its IDs to only one
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 9d1cebe..67c6e30 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -19,6 +19,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <linux/acpi_iort.h>
 #include <linux/device.h>
 #include <linux/dma-iommu.h>
 #include <linux/gfp.h>
@@ -174,6 +175,10 @@ void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list)
 	struct pci_host_bridge *bridge;
 	struct resource_entry *window;
 
+	if (!is_of_node(dev->iommu_fwspec->iommu_fwnode) &&
+		iort_iommu_msi_get_resv_regions(dev, list) < 0)
+		return;
+
 	if (!dev_is_pci(dev))
 		return;
 
diff --git a/include/linux/acpi_iort.h b/include/linux/acpi_iort.h
index 182a577..88f17c9 100644
--- a/include/linux/acpi_iort.h
+++ b/include/linux/acpi_iort.h
@@ -56,7 +56,7 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev)
 { return NULL; }
 static inline
 int iort_iommu_msi_get_resv_regions(struct device *dev, struct list_head *head)
-{ return -ENODEV; }
+{ return 0; }
 #endif
 
 #endif /* __ACPI_IORT_H__ */

-->8--

 

WARNING: multiple messages have this Message-ID (diff)
From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi at huawei.com>
To: devel@acpica.org
Subject: Re: [Devel] [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW MSI address regions for IOMMU drivers
Date: Thu, 26 Oct 2017 10:11:58 +0000	[thread overview]
Message-ID: <5FC3163CFD30C246ABAA99954A238FA83844FE04@FRAEML521-MBX.china.huawei.com> (raw)
In-Reply-To: 1d49243a-4746-f189-7c5d-4b98937115fb@arm.com

[-- Attachment #1: Type: text/plain, Size: 10216 bytes --]

Hi Lorenzo/Will,

> -----Original Message-----
> From: Shameerali Kolothum Thodi
> Sent: Wednesday, October 18, 2017 3:24 PM
> To: 'Robin Murphy' <robin.murphy(a)arm.com>; Will Deacon
> <will.deacon(a)arm.com>
> Cc: lorenzo.pieralisi(a)arm.com; Gabriele Paoloni
> <gabriele.paoloni(a)huawei.com>; marc.zyngier(a)arm.com; linux-
> pci(a)vger.kernel.org; joro(a)8bytes.org; John Garry <john.garry(a)huawei.com>;
> Guohanjun (Hanjun Guo) <guohanjun(a)huawei.com>; Linuxarm
> <linuxarm(a)huawei.com>; linux-acpi(a)vger.kernel.org; iommu(a)lists.linux-
> foundation.org; Wangzhou (B) <wangzhou1(a)hisilicon.com>;
> sudeep.holla(a)arm.com; bhelgaas(a)google.com; linux-arm-
> kernel(a)lists.infradead.org; devel(a)acpica.org
> Subject: RE: [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW
> MSI address regions for IOMMU drivers
> 
> 
> 
> > -----Original Message-----
> > From: Robin Murphy [mailto:robin.murphy(a)arm.com]
> > Sent: Wednesday, October 18, 2017 1:34 PM
> > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi(a)huawei.com>;
> > Will Deacon <will.deacon(a)arm.com>
> > Cc: lorenzo.pieralisi(a)arm.com; Gabriele Paoloni
> > <gabriele.paoloni(a)huawei.com>; marc.zyngier(a)arm.com; linux-
> > pci(a)vger.kernel.org; joro(a)8bytes.org; John Garry
> > <john.garry(a)huawei.com>; Guohanjun (Hanjun Guo)
> > <guohanjun(a)huawei.com>; Linuxarm <linuxarm(a)huawei.com>;
> > linux-acpi(a)vger.kernel.org; iommu(a)lists.linux- foundation.org;
> > Wangzhou (B) <wangzhou1(a)hisilicon.com>; sudeep.holla(a)arm.com;
> > bhelgaas(a)google.com; linux-arm- kernel(a)lists.infradead.org;
> > devel(a)acpica.org
> > Subject: Re: [PATCH v9 2/4] iommu/dma: Add a helper function to
> > reserve HW MSI address regions for IOMMU drivers
> >
> > On 16/10/17 17:09, Shameerali Kolothum Thodi wrote:
> > > Hi Robin,
> > >
> > >> -----Original Message-----
> > >> From: Will Deacon [mailto:will.deacon(a)arm.com]
> > >> Sent: Friday, October 13, 2017 8:24 PM
> > >> To: Shameerali Kolothum Thodi
> > >> <shameerali.kolothum.thodi(a)huawei.com>
> > >> Cc: lorenzo.pieralisi(a)arm.com; marc.zyngier(a)arm.com;
> > >> sudeep.holla(a)arm.com; robin.murphy(a)arm.com; joro(a)8bytes.org;
> > >> bhelgaas(a)google.com; Gabriele Paoloni
> > >> <gabriele.paoloni(a)huawei.com>; John Garry <john.garry(a)huawei.com>;
> > >> iommu(a)lists.linux-foundation.org;
> > >> linux-arm-kernel(a)lists.infradead.org; linux-acpi(a)vger.kernel.org;
> > >> linux- pci(a)vger.kernel.org; devel(a)acpica.org; Linuxarm
> > <linuxarm(a)huawei.com>;
> > >> Wangzhou (B) <wangzhou1(a)hisilicon.com>; Guohanjun (Hanjun Guo)
> > >> <guohanjun(a)huawei.com>
> > >> Subject: Re: [PATCH v9 2/4] iommu/dma: Add a helper function to
> > >> reserve
> > HW
> > >> MSI address regions for IOMMU drivers
> > >>
> > >> On Fri, Oct 06, 2017 at 03:04:48PM +0100, Shameer Kolothum wrote:
> > >>> IOMMU drivers can use this to implement their .get_resv_regions
> > >>> callback for HW MSI specific reservations(e.g. ARM GICv3 ITS MSI
> region).
> > >>>
> > >>> Signed-off-by: Shameer Kolothum
> > <shameerali.kolothum.thodi(a)huawei.com>
> > >>> ---
> > >>>  drivers/iommu/dma-iommu.c | 20 ++++++++++++++++++++
> > >>> include/linux/dma-iommu.h |  7 +++++++
> > >>>  2 files changed, 27 insertions(+)
> > >>
> > >> I'd like to see Robin's Ack on this, because this is his code and
> > >> he had ideas on ways to solve this problem properly.
> > >
> > > Please let us know if it is ok to go ahead with ACPI support for now.
> > > It will help our customers to start using pass-through for PCIe.
> > >
> > > Thanks,
> > > Shameer
> > >
> > >>
> > >> Will
> > >>
> > >>> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> > >>> index 9d1cebe..bae677e 100644
> > >>> --- a/drivers/iommu/dma-iommu.c
> > >>> +++ b/drivers/iommu/dma-iommu.c
> > >>> @@ -19,6 +19,7 @@
> > >>>   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> > >>>   */
> > >>>
> > >>> +#include <linux/acpi_iort.h>
> > >>>  #include <linux/device.h>
> > >>>  #include <linux/dma-iommu.h>
> > >>>  #include <linux/gfp.h>
> > >>> @@ -27,6 +28,7 @@
> > >>>  #include <linux/iova.h>
> > >>>  #include <linux/irq.h>
> > >>>  #include <linux/mm.h>
> > >>> +#include <linux/of_iommu.h>
> > >>>  #include <linux/pci.h>
> > >>>  #include <linux/scatterlist.h>
> > >>>  #include <linux/vmalloc.h>
> > >>> @@ -198,6 +200,24 @@ void iommu_dma_get_resv_regions(struct
> device
> > >> *dev, struct list_head *list)
> > >>>  }
> > >>>  EXPORT_SYMBOL(iommu_dma_get_resv_regions);
> > >>>
> > >>> +/**
> > >>> + * iommu_dma_get_msi_resv_regions - Reserved region driver helper
> > >>> + * @dev: Device from iommu_get_resv_regions()
> > >>> + * @list: Reserved region list from iommu_get_resv_regions()
> > >>> + *
> > >>> + * IOMMU drivers can use this to implement their
> > >>> +.get_resv_regions
> > >>> + * callback for HW MSI specific reservations. For now, this only
> >
> > This doesn't make an awful lot of sense - there's only one reserved
> > region callback, so iommu-dma shouldn't be offering two separate and
> > non-overlapping implementations.
> >
> > >>> + * covers ITS MSI region reservation using ACPI IORT helper function.
> > >>> + */
> > >>> +int iommu_dma_get_msi_resv_regions(struct device *dev, struct
> > list_head
> > >> *list)
> > >>> +{
> > >>> +	if (!is_of_node(dev->iommu_fwspec->iommu_fwnode))
> > >>> +		return iort_iommu_msi_get_resv_regions(dev, list);
> >
> > Either this call knows how to do the right thing for any platform and
> > should be made from iommu_dma_get_reserved_regions() directly, or it's
> > tightly coupled to the HiSilicon quirk in the SMMUv3 driver and
> > iommu-dma doesn't need to know - the middle ground presented here is
> > surely the worst of both worlds.
> 
> Right. I think we have discussed this earlier[1] and had a v4 based on invoking
> the iort_iommu_its_get_resv_regions() within the
> iommu_dma_get_resv_regions().
> But later as you rightly pointed out, we were not checking for platforms which
> requires this quirk inside the iort code and that will break the platforms which
> are happy with MSI translations. Hence moved to the current implementation
> in v6 after this discussion here[2]
> 
> And earlier I think in the v3 version we had the function called from smmu
> driver directly and the feedback was that it should be abstracted from the
> driver.
> 
> May be it is still possible to move the function call inside the
> iommu_dma_get_resv_regions() and do the smmu model check inside  the iort
> helper function and selectively apply the HW MSI reservations.
> 
> But I think it is much neater if we can invoke the iort_get_msi_regions()
> directly from SMMUv3 based on the model.
> 
> Thoughts?

As we still don’t have a clear resolution on how to invoke the 
iort_iommu_msi_get_resv_regions(), I have gone back and attempted to move the
smmu model check inside the iort code. This means the function will selectively
apply HW MSI reservation based on the platform and also the function can be 
invoked from the iommu_dma_get_resv_regions() directly.

Could you please take a look at the below snippet and let me know your feedback.
Hope we can make some progress on this series.

Thanks,
Shameer

-->8--
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 876c0e1..a27233d 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -619,6 +619,39 @@ static int __maybe_unused __get_pci_rid(struct pci_dev *pdev, u16 alias,
 	return 0;
 }
 
+static bool __maybe_unused iort_hw_msi_resv_enable(struct device *dev,
+					struct acpi_iort_node *node)
+{
+	struct acpi_iort_node *iommu = NULL;
+	int i;
+
+	if (dev_is_pci(dev)) {
+		u32 rid;
+
+		pci_for_each_dma_alias(to_pci_dev(dev), __get_pci_rid, &rid);
+		iommu = iort_node_map_id(node, rid, NULL, IORT_IOMMU_TYPE);
+	} else {
+		for (i = 0; i < node->mapping_count; i++) {
+			iommu = iort_node_map_platform_id(node, NULL,
+							IORT_IOMMU_TYPE, i);
+			if (iommu)
+				break;
+		}
+	}
+
+	if (iommu && (iommu->type == ACPI_IORT_NODE_SMMU_V3)) {
+		struct acpi_iort_smmu_v3 *smmu;
+
+		smmu = (struct acpi_iort_smmu_v3 *)iommu->node_data;
+		if (smmu->model == ACPI_IORT_SMMU_V3_HISILICON_HI161X) {
+			dev_notice(dev, "Enabling HiSilicon erratum 161010801\n");
+			return true;
+		}
+	}
+
+	return false;
+}
+
 static int arm_smmu_iort_xlate(struct device *dev, u32 streamid,
 			       struct fwnode_handle *fwnode,
 			       const struct iommu_ops *ops)
@@ -682,6 +715,9 @@ int iort_iommu_msi_get_resv_regions(struct device *dev, struct list_head *head)
 	if (!node)
 		return -ENODEV;
 
+	if (!iort_hw_msi_resv_enable(dev, node))
+		return 0;
+
 	/*
 	 * Current logic to reserve ITS regions relies on HW topologies
 	 * where a given PCI or named component maps its IDs to only one
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 9d1cebe..67c6e30 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -19,6 +19,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <linux/acpi_iort.h>
 #include <linux/device.h>
 #include <linux/dma-iommu.h>
 #include <linux/gfp.h>
@@ -174,6 +175,10 @@ void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list)
 	struct pci_host_bridge *bridge;
 	struct resource_entry *window;
 
+	if (!is_of_node(dev->iommu_fwspec->iommu_fwnode) &&
+		iort_iommu_msi_get_resv_regions(dev, list) < 0)
+		return;
+
 	if (!dev_is_pci(dev))
 		return;
 
diff --git a/include/linux/acpi_iort.h b/include/linux/acpi_iort.h
index 182a577..88f17c9 100644
--- a/include/linux/acpi_iort.h
+++ b/include/linux/acpi_iort.h
@@ -56,7 +56,7 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev)
 { return NULL; }
 static inline
 int iort_iommu_msi_get_resv_regions(struct device *dev, struct list_head *head)
-{ return -ENODEV; }
+{ return 0; }
 #endif
 
 #endif /* __ACPI_IORT_H__ */

-->8--

 


  parent reply	other threads:[~2017-10-26 10:12 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-06 14:04 [PATCH v9 0/4] iommu/smmu-v3: Workaround for hisilicon 161010801 erratum(reserve HW MSI) Shameer Kolothum
2017-10-06 14:04 ` [Devel] " Shameer Kolothum
2017-10-06 14:04 ` Shameer Kolothum
2017-10-06 14:04 ` Shameer Kolothum
2017-10-06 14:04 ` [PATCH v9 1/4] ACPI/IORT: Add msi address regions reservation helper Shameer Kolothum
2017-10-06 14:04   ` [Devel] " Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-06 14:04 ` [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW MSI address regions for IOMMU drivers Shameer Kolothum
2017-10-06 14:04   ` [Devel] " Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-13 19:23   ` Will Deacon
2017-10-13 19:23     ` [Devel] " Will Deacon
2017-10-13 19:23     ` Will Deacon
2017-10-13 19:23     ` Will Deacon
2017-10-16 16:09     ` Shameerali Kolothum Thodi
2017-10-16 16:09       ` [Devel] " Shameerali Kolothum Thodi
2017-10-16 16:09       ` Shameerali Kolothum Thodi
2017-10-16 16:09       ` Shameerali Kolothum Thodi
     [not found]       ` <5FC3163CFD30C246ABAA99954A238FA83844672A-WFPaWmAhWqtUuCJht5byYAK1hpo4iccwjNknBlVQO8k@public.gmane.org>
2017-10-18 12:34         ` Robin Murphy
2017-10-18 12:34           ` [Devel] " Robin Murphy
2017-10-18 12:34           ` Robin Murphy
2017-10-18 12:34           ` Robin Murphy
2017-10-18 14:23           ` Shameerali Kolothum Thodi
2017-10-18 14:23             ` [Devel] " Shameerali Kolothum Thodi
2017-10-18 14:23             ` Shameerali Kolothum Thodi
2017-10-18 14:23             ` Shameerali Kolothum Thodi
2017-10-26 10:11           ` Shameerali Kolothum Thodi [this message]
2017-10-26 10:11             ` [Devel] " Shameerali Kolothum Thodi
2017-10-26 10:11             ` Shameerali Kolothum Thodi
2017-10-26 10:11             ` Shameerali Kolothum Thodi
2017-11-03 11:35             ` Lorenzo Pieralisi
2017-11-03 11:35               ` [Devel] " Lorenzo Pieralisi
2017-11-03 11:35               ` Lorenzo Pieralisi
2017-11-07  9:37               ` Shameerali Kolothum Thodi
2017-11-07  9:37                 ` [Devel] " Shameerali Kolothum Thodi
2017-11-07  9:37                 ` Shameerali Kolothum Thodi
2017-11-07  9:37                 ` Shameerali Kolothum Thodi
2017-10-06 14:04 ` [PATCH v9 3/4] iommu/arm-smmu-v3:Enable ACPI based HiSilicon erratum 161010801 Shameer Kolothum
2017-10-06 14:04   ` [Devel] " Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-06 14:04 ` [PATCH v9 4/4] PCI: hisi: blacklist hip06/hip07 controllers behind SMMUv3 Shameer Kolothum
2017-10-06 14:04   ` [Devel] " Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-06 14:04   ` Shameer Kolothum
2017-10-06 14:27   ` Gabriele Paoloni
2017-10-06 14:27     ` Gabriele Paoloni
2017-10-06 14:27     ` Gabriele Paoloni
2017-10-09  8:32   ` Zhou Wang
2017-10-09  8:32     ` Zhou Wang
2017-10-09  8:32     ` Zhou Wang
2017-10-09 23:54   ` Bjorn Helgaas
2017-10-09 23:54     ` Bjorn Helgaas
2017-10-09 23:54     ` Bjorn Helgaas
     [not found]     ` <20171009235452.GP25517-1RhO1Y9PlrlHTL0Zs8A6p5iNqAH0jzoTYJqu5kTmcBRl57MIdRCFDg@public.gmane.org>
2017-10-10  0:15       ` Bjorn Helgaas
2017-10-10  0:15         ` Bjorn Helgaas
2017-10-10  0:15         ` Bjorn Helgaas
2017-10-10  9:42       ` Shameerali Kolothum Thodi
2017-10-10  9:42         ` [Devel] " Shameerali Kolothum Thodi
2017-10-10  9:42         ` Shameerali Kolothum Thodi
2017-10-10  9:42         ` Shameerali Kolothum Thodi
2017-10-10 10:06         ` Lorenzo Pieralisi
2017-10-10 10:06           ` [Devel] " Lorenzo Pieralisi
2017-10-10 10:06           ` Lorenzo Pieralisi
2017-10-10 10:06           ` Lorenzo Pieralisi
2017-10-10 10:19           ` Gabriele Paoloni
2017-10-10 10:19             ` Gabriele Paoloni
2017-10-10 10:19             ` Gabriele Paoloni
2017-10-10 10:51   ` Bjorn Helgaas
2017-10-10 10:51     ` Bjorn Helgaas
2017-10-13 19:22   ` Will Deacon
2017-10-13 19:22     ` [Devel] " Will Deacon
2017-10-13 19:22     ` Will Deacon
2017-10-13 19:22     ` Will Deacon
     [not found]     ` <20171013192209.GH30572-5wv7dgnIgG8@public.gmane.org>
2017-10-15  7:46       ` Shameerali Kolothum Thodi
2017-10-15  7:46         ` [Devel] " Shameerali Kolothum Thodi
2017-10-15  7:46         ` Shameerali Kolothum Thodi
2017-10-15  7:46         ` Shameerali Kolothum Thodi
2017-10-18 10:51         ` Will Deacon
2017-10-18 10:51           ` [Devel] " Will Deacon
2017-10-18 10:51           ` Will Deacon
2017-10-18 10:51           ` Will Deacon
     [not found]           ` <20171018105145.GC11669-5wv7dgnIgG8@public.gmane.org>
2017-10-18 12:25             ` Shameerali Kolothum Thodi
2017-10-18 12:25               ` [Devel] " Shameerali Kolothum Thodi
2017-10-18 12:25               ` Shameerali Kolothum Thodi
2017-10-18 12:25               ` Shameerali Kolothum Thodi
2017-10-18 13:45               ` Will Deacon
2017-10-18 13:45                 ` [Devel] " Will Deacon
2017-10-18 13:45                 ` Will Deacon
2017-10-18 13:45                 ` Will Deacon
     [not found] ` <20171006140450.89652-1-shameerali.kolothum.thodi-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2017-10-11 11:34   ` [PATCH v9 0/4] iommu/smmu-v3: Workaround for hisilicon 161010801 erratum(reserve HW MSI) Shameerali Kolothum Thodi
2017-10-11 11:34     ` [Devel] " Shameerali Kolothum Thodi
2017-10-11 11:34     ` Shameerali Kolothum Thodi
2017-10-11 11:34     ` Shameerali Kolothum Thodi

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=5FC3163CFD30C246ABAA99954A238FA83844FE04@FRAEML521-MBX.china.huawei.com \
    --to=shameerali.kolothum.thodi@huawei.com \
    --cc=bhelgaas@google.com \
    --cc=devel@acpica.org \
    --cc=gabriele.paoloni@huawei.com \
    --cc=guohanjun@huawei.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=john.garry@huawei.com \
    --cc=joro@8bytes.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=marc.zyngier@arm.com \
    --cc=robin.murphy@arm.com \
    --cc=sudeep.holla@arm.com \
    --cc=wangzhou1@hisilicon.com \
    --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.