[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Fix some IPF Xen VT-d bugs.
# HG changeset patch # User Isaku Yamahata <yamahata@xxxxxxxxxxxxx> # Date 1231232732 -32400 # Node ID 8df294a89a362305b3349937aaed65d76b3b81da # Parent 29a0ecb8a711b28afab72839b57c35571391db14 [IA64] Fix some IPF Xen VT-d bugs. In arch_domain_create(): when xen creates Dom0, need_iommu(d) is false, so iommu_domain_init() is not invoked, as a result, eventually iommu is not enabled properly. Note: d->need_iommu is set to 1 only by assign_device() which is never called for dom0. And it is called via XEN_DOMCTL_assign_device hypercall. In IA64 Xen, physdev_map_pirq()/physdev_unmap_pirq() are kept dummy since we don't support MSI in IA64 Xen now, but here they shouldn't return -ENOSYS because xend invokes them (the x86 version of them is necessary for x86 Xen); in IPF Xen if they return -ENOSYS, xend would disallow us to create IPF HVM guest with devices assigned. Here They can return 0 instead. Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx> --- xen/arch/ia64/xen/domain.c | 6 ++---- xen/arch/ia64/xen/hypercall.c | 10 +++++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff -r 29a0ecb8a711 -r 8df294a89a36 xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c Mon Jan 05 14:13:38 2009 +0900 +++ b/xen/arch/ia64/xen/domain.c Tue Jan 06 18:05:32 2009 +0900 @@ -602,10 +602,8 @@ int arch_domain_create(struct domain *d, if ((d->arch.mm.pgd = pgd_alloc(&d->arch.mm)) == NULL) goto fail_nomem; - if ( iommu_enabled && (is_hvm_domain(d) || need_iommu(d)) ){ - if(iommu_domain_init(d) != 0) - goto fail_iommu; - } + if(iommu_domain_init(d) != 0) + goto fail_iommu; /* * grant_table_create() can't fully initialize grant table for domain diff -r 29a0ecb8a711 -r 8df294a89a36 xen/arch/ia64/xen/hypercall.c --- a/xen/arch/ia64/xen/hypercall.c Mon Jan 05 14:13:38 2009 +0900 +++ b/xen/arch/ia64/xen/hypercall.c Tue Jan 06 18:05:32 2009 +0900 @@ -466,16 +466,20 @@ iosapic_guest_write( /* - * XXX We don't support MSI for PCI passthrough, so just return ENOSYS + * XXX: We don't support MSI for PCI passthrough at present, so make the + * following 2 functions dummy for now. They shouldn't return -ENOSYS + * because xend invokes them (the x86 version of them is necessary for + * x86 Xen); if they return -ENOSYS, xend would disallow us to create + * IPF HVM guest with devices assigned so here they can return 0. */ static int physdev_map_pirq(struct physdev_map_pirq *map) { - return -ENOSYS; + return 0; } static int physdev_unmap_pirq(struct physdev_unmap_pirq *unmap) { - return -ENOSYS; + return 0; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |