aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-02-05 15:08:53 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-02-05 15:08:53 +0000
commit686f69b6c1c0fab21801131b00e0127900d795d6 (patch)
treeb9750a891af6555c7e7daee6e4845bcacf7b74cd
parente39b33978944ef9c17db85b1a91b2637945353f9 (diff)
downloadxen-686f69b6c1c0fab21801131b00e0127900d795d6.tar.gz
xen-686f69b6c1c0fab21801131b00e0127900d795d6.tar.bz2
xen-686f69b6c1c0fab21801131b00e0127900d795d6.zip
Fix PCI passthrough for devices w/o iomem.
From: Manuel Bouyer <bouyer@netbsd.org> Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
-rw-r--r--xen/include/asm-x86/iocap.h5
-rw-r--r--xen/include/xen/iocap.h3
2 files changed, 5 insertions, 3 deletions
diff --git a/xen/include/asm-x86/iocap.h b/xen/include/asm-x86/iocap.h
index c7463cb6f2..eee47228d4 100644
--- a/xen/include/asm-x86/iocap.h
+++ b/xen/include/asm-x86/iocap.h
@@ -14,7 +14,8 @@
#define ioports_access_permitted(d, s, e) \
rangeset_contains_range((d)->arch.ioport_caps, s, e)
-#define cache_flush_permitted(d) \
- (!rangeset_is_empty((d)->iomem_caps))
+#define cache_flush_permitted(d) \
+ (!rangeset_is_empty((d)->iomem_caps) || \
+ !rangeset_is_empty((d)->arch.ioport_caps))
#endif /* __X86_IOCAP_H__ */
diff --git a/xen/include/xen/iocap.h b/xen/include/xen/iocap.h
index db461b9dcb..c32604d9c9 100644
--- a/xen/include/xen/iocap.h
+++ b/xen/include/xen/iocap.h
@@ -29,6 +29,7 @@
rangeset_contains_singleton((d)->irq_caps, i)
#define multipage_allocation_permitted(d) \
- (!rangeset_is_empty((d)->iomem_caps))
+ (!rangeset_is_empty((d)->iomem_caps) || \
+ !rangeset_is_empty((d)->arch.ioport_caps))
#endif /* __XEN_IOCAP_H__ */