diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c index e8763c7fdf..f88a285e7f 100644 --- a/xen/common/sysctl.c +++ b/xen/common/sysctl.c @@ -268,9 +268,11 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl) pi->max_mfn = get_upper_mfn_bound(); arch_do_physinfo(pi); if ( iommu_enabled ) + { pi->capabilities |= XEN_SYSCTL_PHYSCAP_directio; - if ( iommu_hap_pt_share ) - pi->capabilities |= XEN_SYSCTL_PHYSCAP_iommu_hap_pt_share; + if ( iommu_hap_pt_share ) + pi->capabilities |= XEN_SYSCTL_PHYSCAP_iommu_hap_pt_share; + } if ( copy_to_guest(u_sysctl, op, 1) ) ret = -EFAULT; diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c index e8fddc2dc7..2733b320ec 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -454,10 +454,7 @@ int __init iommu_setup(void) iommu_enabled = (rc == 0); } if ( !iommu_enabled ) - { iommu_intremap = 0; - clear_iommu_hap_pt_share(); - } if ( (force_iommu && !iommu_enabled) || (force_intremap && !iommu_intremap) )