From 6d47175f17c01a48f33b0b2737f4b6cdd505b092 Mon Sep 17 00:00:00 2001 From: Stepan Moskovchenko Date: Fri, 12 Nov 2010 19:29:54 -0800 Subject: [PATCH] --- yaml --- r: 225684 b: refs/heads/master c: f6f41eb9ccc0e6fad0ccba4c5e0a97de935db734 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-msm/iommu.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) 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) {