[PATCH] ppc64: move iSeries vio iommu init
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 12 Jul 2005 07:42:49 +0000 (17:42 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 29 Aug 2005 00:53:32 +0000 (10:53 +1000)
Since the iSeries vio iommu tables cannot be used until after the vio bus has
been initialised, move the initialisation of the tables to there.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc64/kernel/iSeries_vio.c
arch/ppc64/mm/init.c
include/asm-ppc64/iommu.h

index e876b4380278797ebe4fdf7b6eb317ac86aafd41..48f0ebf4405d7777056a1aa065ef6896f7b13ad3 100644 (file)
@@ -27,7 +27,7 @@ EXPORT_SYMBOL(iSeries_vio_dev);
 static struct iommu_table veth_iommu_table;
 static struct iommu_table vio_iommu_table;
 
-void __init iommu_vio_init(void)
+static void __init iommu_vio_init(void)
 {
        struct iommu_table *t;
        struct iommu_table_cb cb;
@@ -123,6 +123,7 @@ static int __init vio_bus_init_iseries(void)
 
        err = vio_bus_init();
        if (err == 0) {
+               iommu_vio_init();
                vio_bus_device.iommu_table = &vio_iommu_table;
                iSeries_vio_dev = &vio_bus_device.dev;
                probe_bus_iseries();
index 87f256df8de556c1379f2b0ab886365b1f0db699..9edfe267123e8d40669b6becb81ece1574da6d55 100644 (file)
@@ -686,9 +686,6 @@ void __init mem_init(void)
 
        mem_init_done = 1;
 
-#ifdef CONFIG_PPC_ISERIES
-       iommu_vio_init();
-#endif
        /* Initialize the vDSO */
        vdso_init();
 }
index 729de5cc21d984206b33bf8e142cc9cb8a27668b..72dcf8116b04390446c7e1e4c2110f46e5df5962 100644 (file)
@@ -104,9 +104,6 @@ extern void iommu_devnode_init_pSeries(struct device_node *dn);
 
 #ifdef CONFIG_PPC_ISERIES
 
-/* Initializes tables for bio buses */
-extern void __init iommu_vio_init(void);
-
 struct iSeries_Device_Node;
 /* Creates table for an individual device node */
 extern void iommu_devnode_init_iSeries(struct iSeries_Device_Node *dn);