|
@@ -423,6 +423,9 @@ struct iommu_table *iommu_init_table(struct iommu_table *tbl)
|
|
tbl->it_largehint = tbl->it_halfpoint;
|
|
tbl->it_largehint = tbl->it_halfpoint;
|
|
spin_lock_init(&tbl->it_lock);
|
|
spin_lock_init(&tbl->it_lock);
|
|
|
|
|
|
|
|
+ /* Clear the hardware table in case firmware left allocations in it */
|
|
|
|
+ ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size);
|
|
|
|
+
|
|
if (!welcomed) {
|
|
if (!welcomed) {
|
|
printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n",
|
|
printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n",
|
|
novmerge ? "disabled" : "enabled");
|
|
novmerge ? "disabled" : "enabled");
|