iommu/amd: Fix sparse warnings
authorJoerg Roedel <joerg.roedel@amd.com>
Fri, 6 Jul 2012 11:28:37 +0000 (13:28 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Tue, 17 Jul 2012 10:14:55 +0000 (12:14 +0200)
A few sparse warnings fire in drivers/iommu/amd_iommu_init.c.
Fix most of them with this patch. Also fix the sparse
warnings in drivers/iommu/irq_remapping.c while at it.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
drivers/iommu/amd_iommu.c
drivers/iommu/amd_iommu_init.c
drivers/iommu/amd_iommu_types.h
drivers/iommu/amd_iommu_v2.c
drivers/iommu/irq_remapping.c

index 625626391f2d39d3802710a1677ac49ef3181c9a..7f8e7a8bf50419126fa734ac80604ee79caf8290 100644 (file)
@@ -2073,7 +2073,7 @@ out_err:
 /* FIXME: Move this to PCI code */
 #define PCI_PRI_TLP_OFF                (1 << 15)
 
-bool pci_pri_tlp_required(struct pci_dev *pdev)
+static bool pci_pri_tlp_required(struct pci_dev *pdev)
 {
        u16 status;
        int pos;
index a33612f3206f25f1146df2c84b254b372b306382..55f2033ea69b6f14a723d7acb4b06dc1118ac38a 100644 (file)
@@ -190,12 +190,6 @@ static u32 dev_table_size; /* size of the device table */
 static u32 alias_table_size;   /* size of the alias table */
 static u32 rlookup_table_size; /* size if the rlookup table */
 
-/*
- * This function flushes all internal caches of
- * the IOMMU used by this driver.
- */
-extern void iommu_flush_all_caches(struct amd_iommu *iommu);
-
 static int amd_iommu_enable_interrupts(void);
 
 static inline void update_last_devid(u16 devid)
@@ -358,7 +352,7 @@ static void iommu_disable(struct amd_iommu *iommu)
  * mapping and unmapping functions for the IOMMU MMIO space. Each AMD IOMMU in
  * the system has one.
  */
-static u8 * __init iommu_map_mmio_space(u64 address)
+static u8 __iomem * __init iommu_map_mmio_space(u64 address)
 {
        if (!request_mem_region(address, MMIO_REGION_LENGTH, "amd_iommu")) {
                pr_err("AMD-Vi: Can not reserve memory region %llx for mmio\n",
@@ -367,7 +361,7 @@ static u8 * __init iommu_map_mmio_space(u64 address)
                return NULL;
        }
 
-       return ioremap_nocache(address, MMIO_REGION_LENGTH);
+       return (u8 __iomem *)ioremap_nocache(address, MMIO_REGION_LENGTH);
 }
 
 static void __init iommu_unmap_mmio_space(struct amd_iommu *iommu)
@@ -1217,7 +1211,7 @@ static int __init init_exclusion_range(struct ivmd_header *m)
 /* called for unity map ACPI definition */
 static int __init init_unity_map_range(struct ivmd_header *m)
 {
-       struct unity_map_entry *e = 0;
+       struct unity_map_entry *e = NULL;
        char *s;
 
        e = kzalloc(sizeof(*e), GFP_KERNEL);
@@ -1727,8 +1721,8 @@ __setup("amd_iommu=", parse_amd_iommu_options);
 
 IOMMU_INIT_FINISH(amd_iommu_detect,
                  gart_iommu_hole_init,
-                 0,
-                 0);
+                 NULL,
+                 NULL);
 
 bool amd_iommu_v2_supported(void)
 {
index c1b1d489817e2b667edbbeb95d36eae1d503a994..848fc8e379480adff84374d7f69651c8ec84b740 100644 (file)
@@ -487,7 +487,7 @@ struct amd_iommu {
        /* physical address of MMIO space */
        u64 mmio_phys;
        /* virtual address of MMIO space */
-       u8 *mmio_base;
+       u8 __iomem *mmio_base;
 
        /* capabilities of that IOMMU read from ACPI */
        u32 cap;
@@ -664,6 +664,12 @@ extern bool amd_iommu_force_isolation;
 /* Max levels of glxval supported */
 extern int amd_iommu_max_glx_val;
 
+/*
+ * This function flushes all internal caches of
+ * the IOMMU used by this driver.
+ */
+extern void iommu_flush_all_caches(struct amd_iommu *iommu);
+
 /* takes bus and device/function and returns the device id
  * FIXME: should that be in generic PCI code? */
 static inline u16 calc_devid(u8 bus, u8 devfn)
index 036fe9bf157e0341862c8452ed47ca02b32db3c3..77c28b721741f549354417a1ad37da8bc0161cf2 100644 (file)
@@ -81,7 +81,7 @@ struct fault {
        u16 flags;
 };
 
-struct device_state **state_table;
+static struct device_state **state_table;
 static spinlock_t state_lock;
 
 /* List and lock for all pasid_states */
index 40cda8e98d8748a59fdd47b533445e0ba259e7a2..92769963eac9e9ac086857d5da79430164ec40d5 100644 (file)
@@ -1,6 +1,11 @@
 #include <linux/kernel.h>
 #include <linux/string.h>
+#include <linux/cpumask.h>
 #include <linux/errno.h>
+#include <linux/msi.h>
+
+#include <asm/hw_irq.h>
+#include <asm/irq_remapping.h>
 
 #include "irq_remapping.h"