$NetBSD: patch-da,v 1.1 2009/01/24 18:57:59 bouyer Exp $ some device have I/O space but no mem space so checking iomem to grant privileges is not enough. --- xen/include/xen/iocap.h.orig 2009-01-24 17:21:41.000000000 +0100 +++ xen/include/xen/iocap.h 2009-01-24 17:22:05.000000000 +0100 @@ -29,7 +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)) /* * Until TLB flushing issues are sorted out we consider it unsafe for @@ -37,6 +37,6 @@ * operations. */ #define grant_operation_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__ */