[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 3/3] xen/arm: introduce XENFEAT_grant_map_identity
On 07/24/2014 03:14 PM, Stefano Stabellini wrote: > On Thu, 24 Jul 2014, Julien Grall wrote: >> Hi Stefano, >> >> On 07/24/2014 02:31 PM, Stefano Stabellini wrote: >>> diff --git a/xen/common/kernel.c b/xen/common/kernel.c >>> index 7e83353..dacbe38 100644 >>> --- a/xen/common/kernel.c >>> +++ b/xen/common/kernel.c >>> @@ -15,6 +15,7 @@ >>> #include <xen/guest_access.h> >>> #include <xen/hypercall.h> >>> #include <asm/current.h> >>> +#include <asm/grant_table.h> >>> #include <public/nmi.h> >>> #include <public/version.h> >>> >>> @@ -325,6 +326,8 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) >>> arg) >>> break; >>> } >>> #endif >>> + if ( gnttab_need_identity_mapping(d) ) >> >> Actually even platform the IOMMU support needs to have this flags on. >> With this solution you break platform where not every DMA-capable device >> are behind an SMMU. > > I see. > > >>> + fi.submap |= 1U << XENFEAT_grant_map_identity; >>> break; >>> default: >>> return -EINVAL; >>> diff --git a/xen/include/asm-arm/grant_table.h >>> b/xen/include/asm-arm/grant_table.h >>> index eac8a70..6f7ccd9 100644 >>> --- a/xen/include/asm-arm/grant_table.h >>> +++ b/xen/include/asm-arm/grant_table.h >>> @@ -36,6 +36,9 @@ static inline int replace_grant_supported(void) >>> #define gnttab_need_iommu_mapping(d) \ >>> (is_domain_direct_mapped(d) && need_iommu(d)) >>> >>> +#define gnttab_need_identity_mapping(d) \ >>> + (is_domain_direct_mapped(d) && !need_iommu(d)) >>> + >> >> Why didn't you drop the need_iommu(d) in is_domain_direct_mapped? > > I guess you mean why didn't you drop the need_iommu(d) in > gnttab_need_iommu_mapping? > > Because how can you need an iommu mapping if an iommu is not present? I would invert the name of the 2 macros. And drop !need_iommu(d) in the second. The code would look like: if (gnttab_need_identity_mapping(d)) { if (gnttab_need_iommu_mapping(d)) iommu_map_page else arch_ } On x86, the gnttab_need_iommu_mapping would be equal to 1. Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |