[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 06/21] xen/passthrough: amd: Remove domain_id from hvm_iommu



Hello Sherry and Suravee,

Can one of you ack this change in the AMD IOMMU drivers?

Regards,

On 04/22/2014 02:14 PM, Julien Grall wrote:
> The structure hvm_iommu contains a shadow value of domain->domain_id. There
> is no reason to not directly use domain->domain_id.
> 
> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> 
> ---
>     Changes in v3:
>         - Patch added
> ---
>  xen/drivers/passthrough/amd/iommu_cmd.c     |    3 +--
>  xen/drivers/passthrough/amd/iommu_map.c     |    2 +-
>  xen/drivers/passthrough/amd/pci_amd_iommu.c |    8 +++-----
>  xen/include/xen/hvm/iommu.h                 |    1 -
>  4 files changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c 
> b/xen/drivers/passthrough/amd/iommu_cmd.c
> index d27bd3c..4faa01b 100644
> --- a/xen/drivers/passthrough/amd/iommu_cmd.c
> +++ b/xen/drivers/passthrough/amd/iommu_cmd.c
> @@ -354,8 +354,7 @@ static void _amd_iommu_flush_pages(struct domain *d,
>  {
>      unsigned long flags;
>      struct amd_iommu *iommu;
> -    struct hvm_iommu *hd = domain_hvm_iommu(d);
> -    unsigned int dom_id = hd->domain_id;
> +    unsigned int dom_id = d->domain_id;
>  
>      /* send INVALIDATE_IOMMU_PAGES command */
>      for_each_amd_iommu ( iommu )
> diff --git a/xen/drivers/passthrough/amd/iommu_map.c 
> b/xen/drivers/passthrough/amd/iommu_map.c
> index 1294561..b79e470 100644
> --- a/xen/drivers/passthrough/amd/iommu_map.c
> +++ b/xen/drivers/passthrough/amd/iommu_map.c
> @@ -614,7 +614,7 @@ static int update_paging_mode(struct domain *d, unsigned 
> long gfn)
>                  /* valid = 0 only works for dom0 passthrough mode */
>                  amd_iommu_set_root_page_table((u32 *)device_entry,
>                                                page_to_maddr(hd->root_table),
> -                                              hd->domain_id,
> +                                              d->domain_id,
>                                                hd->paging_mode, 1);
>  
>                  amd_iommu_flush_device(iommu, req_id);
> diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c 
> b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> index 366c750..51b75fc 100644
> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> @@ -138,7 +138,7 @@ static void amd_iommu_setup_domain_device(
>      {
>          /* bind DTE to domain page-tables */
>          amd_iommu_set_root_page_table(
> -            (u32 *)dte, page_to_maddr(hd->root_table), hd->domain_id,
> +            (u32 *)dte, page_to_maddr(hd->root_table), domain->domain_id,
>              hd->paging_mode, valid);
>  
>          if ( pci_ats_device(iommu->seg, bus, pdev->devfn) &&
> @@ -152,7 +152,7 @@ static void amd_iommu_setup_domain_device(
>                          "domain = %d, paging mode = %d\n",
>                          req_id, pdev->type,
>                          page_to_maddr(hd->root_table),
> -                        hd->domain_id, hd->paging_mode);
> +                        domain->domain_id, hd->paging_mode);
>      }
>  
>      spin_unlock_irqrestore(&iommu->lock, flags);
> @@ -274,8 +274,6 @@ static int amd_iommu_domain_init(struct domain *d)
>                        IOMMU_PAGING_MODE_LEVEL_2 :
>                        get_paging_mode(max_page);
>  
> -    hd->domain_id = d->domain_id;
> -
>      guest_iommu_init(d);
>  
>      return 0;
> @@ -334,7 +332,7 @@ void amd_iommu_disable_domain_device(struct domain 
> *domain,
>  
>          AMD_IOMMU_DEBUG("Disable: device id = %#x, "
>                          "domain = %d, paging mode = %d\n",
> -                        req_id,  domain_hvm_iommu(domain)->domain_id,
> +                        req_id,  domain->domain_id,
>                          domain_hvm_iommu(domain)->paging_mode);
>      }
>      spin_unlock_irqrestore(&iommu->lock, flags);
> diff --git a/xen/include/xen/hvm/iommu.h b/xen/include/xen/hvm/iommu.h
> index 8c98274..dc9c766 100644
> --- a/xen/include/xen/hvm/iommu.h
> +++ b/xen/include/xen/hvm/iommu.h
> @@ -38,7 +38,6 @@ struct hvm_iommu {
>      struct list_head mapped_rmrrs;
>  
>      /* amd iommu support */
> -    int domain_id;
>      int paging_mode;
>      struct page_info *root_table;
>      struct guest_iommu *g_iommu;
> 


-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.