|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |