diff --git a/[refs] b/[refs] index cf1c98df6bf5..71daa2163907 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 516cbc793eb4be5123289d067b54dfcdabeddb25 +refs/heads/master: f6f41eb9ccc0e6fad0ccba4c5e0a97de935db734 diff --git a/trunk/arch/arm/mach-msm/iommu.c b/trunk/arch/arm/mach-msm/iommu.c index 134add789187..74f2157eba4e 100644 --- a/trunk/arch/arm/mach-msm/iommu.c +++ b/trunk/arch/arm/mach-msm/iommu.c @@ -50,13 +50,16 @@ static void __flush_iotlb(struct iommu_domain *domain) unsigned long *fl_table = priv->pgtable; int i; - dmac_flush_range(fl_table, fl_table + SZ_16K); + if (!list_empty(&priv->list_attached)) { + dmac_flush_range(fl_table, fl_table + SZ_16K); - for (i = 0; i < NUM_FL_PTE; i++) - if ((fl_table[i] & 0x03) == FL_TYPE_TABLE) { - void *sl_table = __va(fl_table[i] & FL_BASE_MASK); - dmac_flush_range(sl_table, sl_table + SZ_4K); - } + for (i = 0; i < NUM_FL_PTE; i++) + if ((fl_table[i] & 0x03) == FL_TYPE_TABLE) { + void *sl_table = __va(fl_table[i] & + FL_BASE_MASK); + dmac_flush_range(sl_table, sl_table + SZ_4K); + } + } #endif list_for_each_entry(ctx_drvdata, &priv->list_attached, attached_elm) {