[PATCH v10 2/3] iommu/dma: Add HW MSI(GICv3 ITS) address regions reservation

Robin Murphy robin.murphy at arm.com
Mon Dec 11 06:54:12 PST 2017


On 29/11/17 14:14, Shameer Kolothum wrote:
> Modified iommu_dma_get_resv_regions() to include GICv3 ITS
> region on ACPI based ARM platfiorms which may require HW MSI
> reservations.

Assuming this builds correctly for all the various combinations of 
CONFIG_ACPI and CONFIG_ACPI_IORT,

Reviewed-by: Robin Murphy <robin.murphy at arm.com>

> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi at huawei.com>
> ---
>   drivers/iommu/dma-iommu.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index 25914d3..f05f3cf 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>
> @@ -167,13 +168,18 @@ void iommu_put_dma_cookie(struct iommu_domain *domain)
>    *
>    * IOMMU drivers can use this to implement their .get_resv_regions callback
>    * for general non-IOMMU-specific reservations. Currently, this covers host
> - * bridge windows for PCI devices.
> + * bridge windows for PCI devices and GICv3 ITS region reservation on ACPI
> + * based ARM platforms that may require HW MSI reservation.
>    */
>   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;
>   
> 



More information about the linux-arm-kernel mailing list