aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/pci_sun4v.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/pci_sun4v.c')
-rw-r--r--arch/sparc64/kernel/pci_sun4v.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c
index b63b2834133f..b275c7df0186 100644
--- a/arch/sparc64/kernel/pci_sun4v.c
+++ b/arch/sparc64/kernel/pci_sun4v.c
@@ -988,8 +988,13 @@ static unsigned long probe_existing_entries(struct pci_pbm_info *pbm,
988 HV_PCI_TSBID(0, i), 988 HV_PCI_TSBID(0, i),
989 &io_attrs, &ra); 989 &io_attrs, &ra);
990 if (ret == HV_EOK) { 990 if (ret == HV_EOK) {
991 cnt++; 991 if (page_in_phys_avail(ra)) {
992 __set_bit(i, arena->map); 992 pci_sun4v_iommu_demap(devhandle,
993 HV_PCI_TSBID(0, i), 1);
994 } else {
995 cnt++;
996 __set_bit(i, arena->map);
997 }
993 } 998 }
994 } 999 }
995 1000
@@ -1062,9 +1067,9 @@ static void pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
1062 iommu->arena.limit = num_tsb_entries; 1067 iommu->arena.limit = num_tsb_entries;
1063 1068
1064 sz = probe_existing_entries(pbm, iommu); 1069 sz = probe_existing_entries(pbm, iommu);
1065 1070 if (sz)
1066 printk("%s: TSB entries [%lu], existing mapings [%lu]\n", 1071 printk("%s: Imported %lu TSB entries from OBP\n",
1067 pbm->name, num_tsb_entries, sz); 1072 pbm->name, sz);
1068} 1073}
1069 1074
1070static void pci_sun4v_get_bus_range(struct pci_pbm_info *pbm) 1075static void pci_sun4v_get_bus_range(struct pci_pbm_info *pbm)