[POWERPC] Split out the ioid fetching/checking logic
authorMichael Ellerman <michael@ellerman.id.au>
Tue, 29 Jan 2008 14:14:02 +0000 (01:14 +1100)
committerPaul Mackerras <paulus@samba.org>
Thu, 31 Jan 2008 01:11:11 +0000 (12:11 +1100)
Split out the ioid fetching and checking logic so we can use it elsewhere
in a subsequent patch.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/iommu.c

index 950d4327b41e9286df76ee944758293ea3913555..7316226a5f17b7725e5230ce0d343e2e7d351e7e 100644 (file)
@@ -443,25 +443,36 @@ static struct iommu_window *find_window(struct cbe_iommu *iommu,
 }
 #endif
 
+static inline u32 cell_iommu_get_ioid(struct device_node *np)
+{
+       const u32 *ioid;
+
+       ioid = of_get_property(np, "ioid", NULL);
+       if (ioid == NULL) {
+               printk(KERN_WARNING "iommu: missing ioid for %s using 0\n",
+                      np->full_name);
+               return 0;
+       }
+
+       return *ioid;
+}
+
 static struct iommu_window * __init
 cell_iommu_setup_window(struct cbe_iommu *iommu, struct device_node *np,
                        unsigned long offset, unsigned long size,
                        unsigned long pte_offset)
 {
        struct iommu_window *window;
-       const unsigned int *ioid;
+       u32 ioid;
 
-       ioid = of_get_property(np, "ioid", NULL);
-       if (ioid == NULL)
-               printk(KERN_WARNING "iommu: missing ioid for %s using 0\n",
-                      np->full_name);
+       ioid = cell_iommu_get_ioid(np);
 
        window = kmalloc_node(sizeof(*window), GFP_KERNEL, iommu->nid);
        BUG_ON(window == NULL);
 
        window->offset = offset;
        window->size = size;
-       window->ioid = ioid ? *ioid : 0;
+       window->ioid = ioid;
        window->iommu = iommu;
        window->pte_offset = pte_offset;