[PATCH] ppc64: move iSeries vio iommu init

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>
diff --git a/arch/ppc64/kernel/iSeries_vio.c b/arch/ppc64/kernel/iSeries_vio.c
index e876b43..48f0ebf 100644
--- a/arch/ppc64/kernel/iSeries_vio.c
+++ b/arch/ppc64/kernel/iSeries_vio.c
@@ -27,7 +27,7 @@
 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 @@
 
 	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();
diff --git a/arch/ppc64/mm/init.c b/arch/ppc64/mm/init.c
index 87f256d..9edfe26 100644
--- a/arch/ppc64/mm/init.c
+++ b/arch/ppc64/mm/init.c
@@ -686,9 +686,6 @@
 
 	mem_init_done = 1;
 
-#ifdef CONFIG_PPC_ISERIES
-	iommu_vio_init();
-#endif
 	/* Initialize the vDSO */
 	vdso_init();
 }