All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	jroedel-l3A5Bk7waGM@public.gmane.org,
	David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 05/26] iommu/vt-d: Calculate translation in domain_context_mapping_one
Date: Thu, 06 Aug 2015 13:20:01 -0600	[thread overview]
Message-ID: <1438888801.4023.120.camel@redhat.com> (raw)
In-Reply-To: <1438787937-7340-6-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>

On Wed, 2015-08-05 at 17:18 +0200, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel-l3A5Bk7waGM@public.gmane.org>
> 
> There is no reason to pass the translation type through
> multiple layers. It can also be determined in the
> domain_context_mapping_one function directly.
> 
> Signed-off-by: Joerg Roedel <jroedel-l3A5Bk7waGM@public.gmane.org>
> ---
>  drivers/iommu/intel-iommu.c | 50 ++++++++++++++++++++++-----------------------
>  1 file changed, 24 insertions(+), 26 deletions(-)
> 
> diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
> index 58fc4bb..1a934f8 100644
> --- a/drivers/iommu/intel-iommu.c
> +++ b/drivers/iommu/intel-iommu.c
> @@ -364,7 +364,8 @@ static inline int first_pte_in_page(struct dma_pte *pte)
>  static struct dmar_domain *si_domain;
>  static int hw_pass_through = 1;
>  
> -/* domain represents a virtual machine, more than one devices
> +/*
> + * Domain represents a virtual machine, more than one devices
>   * across iommus may be owned in one domain, e.g. kvm guest.
>   */
>  #define DOMAIN_FLAG_VIRTUAL_MACHINE	(1 << 0)
> @@ -638,6 +639,11 @@ static inline int domain_type_is_vm(struct dmar_domain *domain)
>  	return domain->flags & DOMAIN_FLAG_VIRTUAL_MACHINE;
>  }
>  
> +static inline int domain_type_is_si(struct dmar_domain *domain)
> +{
> +	return domain->flags & DOMAIN_FLAG_STATIC_IDENTITY;
> +}
> +
>  static inline int domain_type_is_vm_or_si(struct dmar_domain *domain)
>  {
>  	return domain->flags & (DOMAIN_FLAG_VIRTUAL_MACHINE |
> @@ -1904,21 +1910,24 @@ static void domain_exit(struct dmar_domain *domain)
>  
>  static int domain_context_mapping_one(struct dmar_domain *domain,
>  				      struct intel_iommu *iommu,
> -				      u8 bus, u8 devfn, int translation)
> +				      u8 bus, u8 devfn)
>  {
> +	int translation = CONTEXT_TT_MULTI_LEVEL;
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +	struct device_domain_info *info = NULL;
>  	struct context_entry *context;
>  	unsigned long flags;
>  	struct dma_pte *pgd;
>  	int id;
>  	int agaw;
> -	struct device_domain_info *info = NULL;
> +
> +	translation = CONTEXT_TT_MULTI_LEVEL;
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I'm sure this is already part of your cleanup.

> +	if (hw_pass_through && domain_type_is_si(domain))
> +		translation = CONTEXT_TT_PASS_THROUGH;
>  
>  	pr_debug("Set context mapping for %02x:%02x.%d\n",
>  		bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
>  
>  	BUG_ON(!domain->pgd);
> -	BUG_ON(translation != CONTEXT_TT_PASS_THROUGH &&
> -	       translation != CONTEXT_TT_MULTI_LEVEL);
>  
>  	spin_lock_irqsave(&iommu->lock, flags);
>  	context = iommu_context_addr(iommu, bus, devfn, 1);
> @@ -2010,7 +2019,6 @@ static int domain_context_mapping_one(struct dmar_domain *domain,
>  struct domain_context_mapping_data {
>  	struct dmar_domain *domain;
>  	struct intel_iommu *iommu;
> -	int translation;
>  };
>  
>  static int domain_context_mapping_cb(struct pci_dev *pdev,
> @@ -2019,13 +2027,11 @@ static int domain_context_mapping_cb(struct pci_dev *pdev,
>  	struct domain_context_mapping_data *data = opaque;
>  
>  	return domain_context_mapping_one(data->domain, data->iommu,
> -					  PCI_BUS_NUM(alias), alias & 0xff,
> -					  data->translation);
> +					  PCI_BUS_NUM(alias), alias & 0xff);
>  }
>  
>  static int
> -domain_context_mapping(struct dmar_domain *domain, struct device *dev,
> -		       int translation)
> +domain_context_mapping(struct dmar_domain *domain, struct device *dev)
>  {
>  	struct intel_iommu *iommu;
>  	u8 bus, devfn;
> @@ -2036,12 +2042,10 @@ domain_context_mapping(struct dmar_domain *domain, struct device *dev,
>  		return -ENODEV;
>  
>  	if (!dev_is_pci(dev))
> -		return domain_context_mapping_one(domain, iommu, bus, devfn,
> -						  translation);
> +		return domain_context_mapping_one(domain, iommu, bus, devfn);
>  
>  	data.domain = domain;
>  	data.iommu = iommu;
> -	data.translation = translation;
>  
>  	return pci_for_each_dma_alias(to_pci_dev(dev),
>  				      &domain_context_mapping_cb, &data);
> @@ -2508,7 +2512,7 @@ static int iommu_prepare_identity_map(struct device *dev,
>  		goto error;
>  
>  	/* context entry init */
> -	ret = domain_context_mapping(domain, dev, CONTEXT_TT_MULTI_LEVEL);
> +	ret = domain_context_mapping(domain, dev);
>  	if (ret)
>  		goto error;
>  
> @@ -2621,8 +2625,7 @@ static int identity_mapping(struct device *dev)
>  	return 0;
>  }
>  
> -static int domain_add_dev_info(struct dmar_domain *domain,
> -			       struct device *dev, int translation)
> +static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev)
>  {
>  	struct dmar_domain *ndomain;
>  	struct intel_iommu *iommu;
> @@ -2637,7 +2640,7 @@ static int domain_add_dev_info(struct dmar_domain *domain,
>  	if (ndomain != domain)
>  		return -EBUSY;
>  
> -	ret = domain_context_mapping(domain, dev, translation);
> +	ret = domain_context_mapping(domain, dev);
>  	if (ret) {
>  		domain_remove_one_dev_info(domain, dev);
>  		return ret;
> @@ -2782,9 +2785,7 @@ static int __init dev_prepare_static_identity_mapping(struct device *dev, int hw
>  	if (!iommu_should_identity_map(dev, 1))
>  		return 0;
>  
> -	ret = domain_add_dev_info(si_domain, dev,
> -				  hw ? CONTEXT_TT_PASS_THROUGH :
> -				       CONTEXT_TT_MULTI_LEVEL);
> +	ret = domain_add_dev_info(si_domain, dev);
>  	if (!ret)
>  		pr_info("%s identity mapping for device %s\n",
>  			hw ? "Hardware" : "Software", dev_name(dev));
> @@ -3311,7 +3312,7 @@ static struct dmar_domain *__get_valid_domain_for_dev(struct device *dev)
>  
>  	/* make sure context mapping is ok */
>  	if (unlikely(!domain_context_mapped(dev))) {
> -		ret = domain_context_mapping(domain, dev, CONTEXT_TT_MULTI_LEVEL);
> +		ret = domain_context_mapping(domain, dev);
>  		if (ret) {
>  			pr_err("Domain context map for %s failed\n",
>  			       dev_name(dev));
> @@ -3366,10 +3367,7 @@ static int iommu_no_mapping(struct device *dev)
>  		 */
>  		if (iommu_should_identity_map(dev, 0)) {
>  			int ret;
> -			ret = domain_add_dev_info(si_domain, dev,
> -						  hw_pass_through ?
> -						  CONTEXT_TT_PASS_THROUGH :
> -						  CONTEXT_TT_MULTI_LEVEL);
> +			ret = domain_add_dev_info(si_domain, dev);
>  			if (!ret) {
>  				pr_info("64bit %s uses identity mapping\n",
>  					dev_name(dev));
> @@ -4786,7 +4784,7 @@ static int intel_iommu_attach_device(struct iommu_domain *domain,
>  		dmar_domain->agaw--;
>  	}
>  
> -	return domain_add_dev_info(dmar_domain, dev, CONTEXT_TT_MULTI_LEVEL);
> +	return domain_add_dev_info(dmar_domain, dev);
>  }
>  
>  static void intel_iommu_detach_device(struct iommu_domain *domain,

WARNING: multiple messages have this Message-ID (diff)
From: Alex Williamson <alex.williamson@redhat.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: iommu@lists.linux-foundation.org,
	David Woodhouse <dwmw2@infradead.org>,
	linux-kernel@vger.kernel.org, jroedel@suse.de
Subject: Re: [PATCH 05/26] iommu/vt-d: Calculate translation in domain_context_mapping_one
Date: Thu, 06 Aug 2015 13:20:01 -0600	[thread overview]
Message-ID: <1438888801.4023.120.camel@redhat.com> (raw)
In-Reply-To: <1438787937-7340-6-git-send-email-joro@8bytes.org>

On Wed, 2015-08-05 at 17:18 +0200, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel@suse.de>
> 
> There is no reason to pass the translation type through
> multiple layers. It can also be determined in the
> domain_context_mapping_one function directly.
> 
> Signed-off-by: Joerg Roedel <jroedel@suse.de>
> ---
>  drivers/iommu/intel-iommu.c | 50 ++++++++++++++++++++++-----------------------
>  1 file changed, 24 insertions(+), 26 deletions(-)
> 
> diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
> index 58fc4bb..1a934f8 100644
> --- a/drivers/iommu/intel-iommu.c
> +++ b/drivers/iommu/intel-iommu.c
> @@ -364,7 +364,8 @@ static inline int first_pte_in_page(struct dma_pte *pte)
>  static struct dmar_domain *si_domain;
>  static int hw_pass_through = 1;
>  
> -/* domain represents a virtual machine, more than one devices
> +/*
> + * Domain represents a virtual machine, more than one devices
>   * across iommus may be owned in one domain, e.g. kvm guest.
>   */
>  #define DOMAIN_FLAG_VIRTUAL_MACHINE	(1 << 0)
> @@ -638,6 +639,11 @@ static inline int domain_type_is_vm(struct dmar_domain *domain)
>  	return domain->flags & DOMAIN_FLAG_VIRTUAL_MACHINE;
>  }
>  
> +static inline int domain_type_is_si(struct dmar_domain *domain)
> +{
> +	return domain->flags & DOMAIN_FLAG_STATIC_IDENTITY;
> +}
> +
>  static inline int domain_type_is_vm_or_si(struct dmar_domain *domain)
>  {
>  	return domain->flags & (DOMAIN_FLAG_VIRTUAL_MACHINE |
> @@ -1904,21 +1910,24 @@ static void domain_exit(struct dmar_domain *domain)
>  
>  static int domain_context_mapping_one(struct dmar_domain *domain,
>  				      struct intel_iommu *iommu,
> -				      u8 bus, u8 devfn, int translation)
> +				      u8 bus, u8 devfn)
>  {
> +	int translation = CONTEXT_TT_MULTI_LEVEL;
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +	struct device_domain_info *info = NULL;
>  	struct context_entry *context;
>  	unsigned long flags;
>  	struct dma_pte *pgd;
>  	int id;
>  	int agaw;
> -	struct device_domain_info *info = NULL;
> +
> +	translation = CONTEXT_TT_MULTI_LEVEL;
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I'm sure this is already part of your cleanup.

> +	if (hw_pass_through && domain_type_is_si(domain))
> +		translation = CONTEXT_TT_PASS_THROUGH;
>  
>  	pr_debug("Set context mapping for %02x:%02x.%d\n",
>  		bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
>  
>  	BUG_ON(!domain->pgd);
> -	BUG_ON(translation != CONTEXT_TT_PASS_THROUGH &&
> -	       translation != CONTEXT_TT_MULTI_LEVEL);
>  
>  	spin_lock_irqsave(&iommu->lock, flags);
>  	context = iommu_context_addr(iommu, bus, devfn, 1);
> @@ -2010,7 +2019,6 @@ static int domain_context_mapping_one(struct dmar_domain *domain,
>  struct domain_context_mapping_data {
>  	struct dmar_domain *domain;
>  	struct intel_iommu *iommu;
> -	int translation;
>  };
>  
>  static int domain_context_mapping_cb(struct pci_dev *pdev,
> @@ -2019,13 +2027,11 @@ static int domain_context_mapping_cb(struct pci_dev *pdev,
>  	struct domain_context_mapping_data *data = opaque;
>  
>  	return domain_context_mapping_one(data->domain, data->iommu,
> -					  PCI_BUS_NUM(alias), alias & 0xff,
> -					  data->translation);
> +					  PCI_BUS_NUM(alias), alias & 0xff);
>  }
>  
>  static int
> -domain_context_mapping(struct dmar_domain *domain, struct device *dev,
> -		       int translation)
> +domain_context_mapping(struct dmar_domain *domain, struct device *dev)
>  {
>  	struct intel_iommu *iommu;
>  	u8 bus, devfn;
> @@ -2036,12 +2042,10 @@ domain_context_mapping(struct dmar_domain *domain, struct device *dev,
>  		return -ENODEV;
>  
>  	if (!dev_is_pci(dev))
> -		return domain_context_mapping_one(domain, iommu, bus, devfn,
> -						  translation);
> +		return domain_context_mapping_one(domain, iommu, bus, devfn);
>  
>  	data.domain = domain;
>  	data.iommu = iommu;
> -	data.translation = translation;
>  
>  	return pci_for_each_dma_alias(to_pci_dev(dev),
>  				      &domain_context_mapping_cb, &data);
> @@ -2508,7 +2512,7 @@ static int iommu_prepare_identity_map(struct device *dev,
>  		goto error;
>  
>  	/* context entry init */
> -	ret = domain_context_mapping(domain, dev, CONTEXT_TT_MULTI_LEVEL);
> +	ret = domain_context_mapping(domain, dev);
>  	if (ret)
>  		goto error;
>  
> @@ -2621,8 +2625,7 @@ static int identity_mapping(struct device *dev)
>  	return 0;
>  }
>  
> -static int domain_add_dev_info(struct dmar_domain *domain,
> -			       struct device *dev, int translation)
> +static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev)
>  {
>  	struct dmar_domain *ndomain;
>  	struct intel_iommu *iommu;
> @@ -2637,7 +2640,7 @@ static int domain_add_dev_info(struct dmar_domain *domain,
>  	if (ndomain != domain)
>  		return -EBUSY;
>  
> -	ret = domain_context_mapping(domain, dev, translation);
> +	ret = domain_context_mapping(domain, dev);
>  	if (ret) {
>  		domain_remove_one_dev_info(domain, dev);
>  		return ret;
> @@ -2782,9 +2785,7 @@ static int __init dev_prepare_static_identity_mapping(struct device *dev, int hw
>  	if (!iommu_should_identity_map(dev, 1))
>  		return 0;
>  
> -	ret = domain_add_dev_info(si_domain, dev,
> -				  hw ? CONTEXT_TT_PASS_THROUGH :
> -				       CONTEXT_TT_MULTI_LEVEL);
> +	ret = domain_add_dev_info(si_domain, dev);
>  	if (!ret)
>  		pr_info("%s identity mapping for device %s\n",
>  			hw ? "Hardware" : "Software", dev_name(dev));
> @@ -3311,7 +3312,7 @@ static struct dmar_domain *__get_valid_domain_for_dev(struct device *dev)
>  
>  	/* make sure context mapping is ok */
>  	if (unlikely(!domain_context_mapped(dev))) {
> -		ret = domain_context_mapping(domain, dev, CONTEXT_TT_MULTI_LEVEL);
> +		ret = domain_context_mapping(domain, dev);
>  		if (ret) {
>  			pr_err("Domain context map for %s failed\n",
>  			       dev_name(dev));
> @@ -3366,10 +3367,7 @@ static int iommu_no_mapping(struct device *dev)
>  		 */
>  		if (iommu_should_identity_map(dev, 0)) {
>  			int ret;
> -			ret = domain_add_dev_info(si_domain, dev,
> -						  hw_pass_through ?
> -						  CONTEXT_TT_PASS_THROUGH :
> -						  CONTEXT_TT_MULTI_LEVEL);
> +			ret = domain_add_dev_info(si_domain, dev);
>  			if (!ret) {
>  				pr_info("64bit %s uses identity mapping\n",
>  					dev_name(dev));
> @@ -4786,7 +4784,7 @@ static int intel_iommu_attach_device(struct iommu_domain *domain,
>  		dmar_domain->agaw--;
>  	}
>  
> -	return domain_add_dev_info(dmar_domain, dev, CONTEXT_TT_MULTI_LEVEL);
> +	return domain_add_dev_info(dmar_domain, dev);
>  }
>  
>  static void intel_iommu_detach_device(struct iommu_domain *domain,




  parent reply	other threads:[~2015-08-06 19:20 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-05 15:18 [PATCH 00/26] iommu/vt-d: Clean up device<->domain attachment Joerg Roedel
2015-08-05 15:18 ` Joerg Roedel
     [not found] ` <1438787937-7340-1-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-08-05 15:18   ` [PATCH 01/26] iommu/vt-d: Keep track of per-iommu domain ids Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
     [not found]     ` <1438787937-7340-2-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-08-06 19:19       ` Alex Williamson
2015-08-06 19:19         ` Alex Williamson
     [not found]         ` <1438888792.4023.118.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-08-07 11:07           ` Joerg Roedel
2015-08-07 11:07             ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 02/26] iommu/vt-d: Add access functions for iommu->domains Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 03/26] iommu/vt-d: Split up iommu->domains array Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
     [not found]     ` <1438787937-7340-4-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-08-06 19:20       ` Alex Williamson
2015-08-06 19:20         ` Alex Williamson
     [not found]         ` <1438888809.4023.121.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-08-07 11:11           ` Joerg Roedel
2015-08-07 11:11             ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 04/26] iommu/vt-d: Get rid of iommu_attach_vm_domain() Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 05/26] iommu/vt-d: Calculate translation in domain_context_mapping_one Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
     [not found]     ` <1438787937-7340-6-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-08-06 19:20       ` Alex Williamson [this message]
2015-08-06 19:20         ` Alex Williamson
     [not found]         ` <1438888801.4023.120.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-08-07 11:13           ` Joerg Roedel
2015-08-07 11:13             ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 06/26] iommu/vt-d: Simplify domain_context_mapping_one Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 08/26] iommu/vt-d: Don't pre-allocate domain ids for si_domain Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 10/26] iommu/vt-d: Replace iommu_bmp with a refcount Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
     [not found]     ` <1438787937-7340-11-git-send-email-joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-08-06 19:19       ` Alex Williamson
2015-08-06 19:19         ` Alex Williamson
     [not found]         ` <1438888797.4023.119.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-08-07 11:17           ` Joerg Roedel
2015-08-07 11:17             ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 11/26] iommu/vt-d: Simplify io/tlb flushing in intel_iommu_unmap Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 12/26] iommu/vt-d: Simplify domain_remove_one_dev_info() Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 13/26] iommu/vt-d: Simplify domain_remove_dev_info() Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 14/26] iommu/vt-d: Move context-mapping into dmar_insert_dev_info Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 15/26] iommu/vt-d: Rename dmar_insert_dev_info() Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 16/26] iommu/vt-d: Rename domain_remove_one_dev_info() Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 17/26] iommu/vt-d: Rename iommu_detach_dependent_devices() Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 18/26] iommu/vt-d: Pass an iommu pointer to domain_init() Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 20/26] iommu/vt-d: Unify domain->iommu attach/detachment Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 21/26] iommu/vt-d: Only call domain_remove_one_dev_info to detach old domain Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 22/26] iommu/vt-d: Get rid of domain->iommu_lock Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-05 15:18   ` [PATCH 23/26] iommu/vt-d: Remove dmar_global_lock from device_notifier Joerg Roedel
2015-08-05 15:18     ` Joerg Roedel
2015-08-06 19:19   ` [PATCH 00/26] iommu/vt-d: Clean up device<->domain attachment Alex Williamson
2015-08-06 19:19     ` Alex Williamson
     [not found]     ` <1438888787.4023.116.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-08-07 11:22       ` Joerg Roedel
2015-08-07 11:22         ` Joerg Roedel
2015-08-05 15:18 ` [PATCH 07/26] iommu/vt-d: Pass dmar_domain directly into iommu_flush_iotlb_psi Joerg Roedel
2015-08-05 15:18 ` [PATCH 09/26] iommu/vt-d: Kill dmar_domain->id Joerg Roedel
2015-08-05 15:18 ` [PATCH 19/26] iommu/vt-d: Establish domain<->iommu link in dmar_insert_one_dev_info Joerg Roedel
2015-08-05 15:18 ` [PATCH 24/26] iommu/vt-d: Pass device_domain_info to __dmar_remove_one_dev_info Joerg Roedel
2015-08-05 15:18 ` [PATCH 25/26] iommu/vt-d: Only insert alias dev_info if there is an alias Joerg Roedel
2015-08-05 15:18 ` [PATCH 26/26] iommu/vt-d: Avoid duplicate device_domain_info structures Joerg Roedel

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=1438888801.4023.120.camel@redhat.com \
    --to=alex.williamson-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
    --cc=jroedel-l3A5Bk7waGM@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.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.