From: Nishanth Aravamudan Date: Fri, 18 Jan 2013 09:16:24 +0000 (+0000) Subject: pseries/iommu: Fix iteration in DDW TCE clearrange X-Git-Tag: v3.9-rc1~100^2~34 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=22b382985a2e213e4ea0b4e436df24ab7228961d;p=platform%2Fkernel%2Flinux-stable.git pseries/iommu: Fix iteration in DDW TCE clearrange 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 Signed-off-by: Benjamin Herrenschmidt --- 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);