|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] AMD IOMMU: add support for PV guest
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1213001061 -3600
# Node ID 5009f5d093cea2e55a3838bb7e6ee42c12b0f68a
# Parent 041f67ddcd7b2e34e0bd5c4e7c8b260a3a2944be
AMD IOMMU: add support for PV guest
Assuming iommu_populate_page_table() is only used for PV guest, a new
check is added into assign_device() to avoid duplicating the work done
by amd_iommu_sync_p2m() for hvm guest.
Signed-off-by: Wei Wang <wei.wang2@xxxxxxx>
---
xen/drivers/passthrough/iommu.c | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
diff -r 041f67ddcd7b -r 5009f5d093ce xen/drivers/passthrough/iommu.c
--- a/xen/drivers/passthrough/iommu.c Mon Jun 09 09:42:51 2008 +0100
+++ b/xen/drivers/passthrough/iommu.c Mon Jun 09 09:44:21 2008 +0100
@@ -68,7 +68,7 @@ int assign_device(struct domain *d, u8 b
if ( (rc = hd->platform_ops->assign_device(d, bus, devfn)) )
return rc;
- if ( has_iommu_pdevs(d) && !need_iommu(d) )
+ if ( has_iommu_pdevs(d) && !is_hvm_domain(d) && !need_iommu(d) )
{
d->need_iommu = 1;
return iommu_populate_page_table(d);
@@ -114,6 +114,16 @@ void iommu_domain_destroy(struct domain
if ( !iommu_enabled || !hd->platform_ops )
return;
+ if ( !is_hvm_domain(d) && !need_iommu(d) )
+ return;
+
+ if ( need_iommu(d) )
+ {
+ d->need_iommu = 0;
+ hd->platform_ops->teardown(d);
+ return;
+ }
+
if ( hvm_irq_dpci != NULL )
{
for ( i = 0; i < NR_IRQS; i++ )
@@ -207,10 +217,10 @@ static int iommu_setup(void)
iommu_enabled = (rc == 0);
out:
- if ( !iommu_enabled || !vtd_enabled )
+ if ( !iommu_enabled )
iommu_pv_enabled = 0;
printk("I/O virtualisation %sabled\n", iommu_enabled ? "en" : "dis");
- if (iommu_enabled)
+ if ( iommu_enabled )
printk("I/O virtualisation for PV guests %sabled\n",
iommu_pv_enabled ? "en" : "dis");
return rc;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] AMD IOMMU: add support for PV guest,
Xen patchbot-unstable <=
|
|
|
|
|