iommu/core: Define iommu_ops and register_iommu only with CONFIG_IOMMU_API
authorJoerg Roedel <joerg.roedel@amd.com>
Tue, 6 Sep 2011 14:48:40 +0000 (16:48 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Fri, 21 Oct 2011 12:37:18 +0000 (14:37 +0200)
This makes it impossible to compile an iommu driver into the
kernel without selecting CONFIG_IOMMU_API.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
include/linux/iommu.h

index 9940319d6f9d3ab0d1442a5fa31a7db9be6dafa3..6470cd87b4ea2e5d4929fe9b821a0d572c2707ab 100644 (file)
@@ -34,6 +34,8 @@ struct iommu_domain {
 #define IOMMU_CAP_CACHE_COHERENCY      0x1
 #define IOMMU_CAP_INTR_REMAP           0x2     /* isolates device intrs */
 
+#ifdef CONFIG_IOMMU_API
+
 struct iommu_ops {
        int (*domain_init)(struct iommu_domain *domain);
        void (*domain_destroy)(struct iommu_domain *domain);
@@ -49,8 +51,6 @@ struct iommu_ops {
                              unsigned long cap);
 };
 
-#ifdef CONFIG_IOMMU_API
-
 extern void register_iommu(struct iommu_ops *ops);
 extern bool iommu_found(void);
 extern struct iommu_domain *iommu_domain_alloc(void);
@@ -70,9 +70,7 @@ extern int iommu_domain_has_cap(struct iommu_domain *domain,
 
 #else /* CONFIG_IOMMU_API */
 
-static inline void register_iommu(struct iommu_ops *ops)
-{
-}
+struct iommu_ops {};
 
 static inline bool iommu_found(void)
 {