OSDN Git Service

iommu: Add domain attribute for getting page table info
authorMitchel Humpherys <mitchelh@codeaurora.org>
Fri, 12 Feb 2016 22:10:31 +0000 (14:10 -0800)
committerJeevan Shriram <jshriram@codeaurora.org>
Sat, 21 May 2016 02:23:59 +0000 (19:23 -0700)
For certain DMA API implementations, the overhead of going through the
IOMMU framework is too much.  Such an implementation might want to
perform some rudimentary page table management using bits of information
from the underlying page tables.  Add a domain attribute and structure
for querying this type of information.  For now, the only information
supported is the kernel virtual address of the PMDs (assumed to be
virtually contiguous).

CRs-Fixed: 997751
Change-Id: I29d31e9649c24d30a5a7ffaa4b238a0203846594
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
include/linux/iommu.h

index 7b6ea78..5685572 100644 (file)
@@ -56,6 +56,10 @@ struct iommu_domain_geometry {
        bool force_aperture;       /* DMA only allowed in mappable range? */
 };
 
+struct iommu_pgtbl_info {
+       void *pmds;
+};
+
 /* Domain feature flags */
 #define __IOMMU_DOMAIN_PAGING  (1U << 0)  /* Support for iommu_map/unmap */
 #define __IOMMU_DOMAIN_DMA_API (1U << 1)  /* Domain for use in DMA-API
@@ -129,6 +133,7 @@ enum iommu_attr {
        DOMAIN_ATTR_NON_FATAL_FAULTS,
        DOMAIN_ATTR_S1_BYPASS,
        DOMAIN_ATTR_FAST,
+       DOMAIN_ATTR_PGTBL_INFO,
        DOMAIN_ATTR_MAX,
 };