[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] make logdirty and iommu mutually exclusive
commit 37201c620379d3afdaafd85009312b17ab9842c3 Author: Roger Pau Monné <roger.pau@xxxxxxxxxx> AuthorDate: Thu Jun 5 17:41:46 2014 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu Jun 5 17:41:46 2014 +0200 make logdirty and iommu mutually exclusive Prevent the usage of global logdirty if the domain is using the IOMMU, and also prevent passthrough of devices if logdirty is enabled. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Tim Deegan <tim@xxxxxxx> --- xen/arch/x86/mm/paging.c | 9 +++++++++ xen/drivers/passthrough/pci.c | 3 ++- 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c index 9e9a11b..32764ba 100644 --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -168,6 +168,15 @@ int paging_log_dirty_enable(struct domain *d, bool_t log_global) { int ret; + if ( need_iommu(d) && log_global ) + { + /* + * Refuse to turn on global log-dirty mode + * if the domain is using the IOMMU. + */ + return -EINVAL; + } + if ( paging_mode_log_dirty(d) ) return -EINVAL; diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c index b7f6e8a..43c1a81 100644 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -1233,7 +1233,8 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn) * enabled for this domain */ if ( unlikely(!need_iommu(d) && (d->arch.hvm_domain.mem_sharing_enabled || - d->mem_event->paging.ring_page)) ) + d->mem_event->paging.ring_page || + p2m_get_hostp2m(d)->global_logdirty)) ) return -EXDEV; if ( !spin_trylock(&pcidevs_lock) ) -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |