Commit 8c65b5c9 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Paul Mackerras

[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: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 3e494c80
...@@ -27,7 +27,7 @@ EXPORT_SYMBOL(iSeries_vio_dev); ...@@ -27,7 +27,7 @@ EXPORT_SYMBOL(iSeries_vio_dev);
static struct iommu_table veth_iommu_table; static struct iommu_table veth_iommu_table;
static struct iommu_table vio_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 *t;
struct iommu_table_cb cb; struct iommu_table_cb cb;
...@@ -123,6 +123,7 @@ static int __init vio_bus_init_iseries(void) ...@@ -123,6 +123,7 @@ static int __init vio_bus_init_iseries(void)
err = vio_bus_init(); err = vio_bus_init();
if (err == 0) { if (err == 0) {
iommu_vio_init();
vio_bus_device.iommu_table = &vio_iommu_table; vio_bus_device.iommu_table = &vio_iommu_table;
iSeries_vio_dev = &vio_bus_device.dev; iSeries_vio_dev = &vio_bus_device.dev;
probe_bus_iseries(); probe_bus_iseries();
......
...@@ -686,9 +686,6 @@ void __init mem_init(void) ...@@ -686,9 +686,6 @@ void __init mem_init(void)
mem_init_done = 1; mem_init_done = 1;
#ifdef CONFIG_PPC_ISERIES
iommu_vio_init();
#endif
/* Initialize the vDSO */ /* Initialize the vDSO */
vdso_init(); vdso_init();
} }
......
...@@ -104,9 +104,6 @@ extern void iommu_devnode_init_pSeries(struct device_node *dn); ...@@ -104,9 +104,6 @@ extern void iommu_devnode_init_pSeries(struct device_node *dn);
#ifdef CONFIG_PPC_ISERIES #ifdef CONFIG_PPC_ISERIES
/* Initializes tables for bio buses */
extern void __init iommu_vio_init(void);
struct iSeries_Device_Node; struct iSeries_Device_Node;
/* Creates table for an individual device node */ /* Creates table for an individual device node */
extern void iommu_devnode_init_iSeries(struct iSeries_Device_Node *dn); extern void iommu_devnode_init_iSeries(struct iSeries_Device_Node *dn);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment