Patchwork pseries/iommu: Fix iteration in DDW TCE clearrange

login
register
mail settings
Submitter Nishanth Aravamudan
Date Jan. 18, 2013, 7:16 p.m.
Message ID <20130118191624.GB25500@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/213733/
State Accepted, archived
Commit 22b382985a2e213e4ea0b4e436df24ab7228961d
Headers show

Comments

Nishanth Aravamudan - Jan. 18, 2013, 7:16 p.m.
tce_clearrange_multi_pSeriesLP is attempting to iterate over all TCEs in
a given range. However, is it not advancing the dma_offset value passed
to plpar_tce_stuff via the next value. This prevents DLPAR from
completing, because TCEs are still present at slot isolation time.
    
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>

Patch

diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index e2685ba..a55b685 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -382,6 +382,7 @@  static int tce_clearrange_multi_pSeriesLP(unsigned long start_pfn,
 		rc = plpar_tce_stuff((u64)be32_to_cpu(maprange->liobn),
 					     dma_offset,
 					     0, limit);
+		next += limit * tce_size;
 		num_tce -= limit;
 	} while (num_tce > 0 && !rc);