diff options
author | Paul Mackerras <paulus@samba.org> | 2006-09-13 23:07:18 +0200 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-09-13 23:07:18 +0200 |
commit | c547fc28ab3e8716076fdaf4bd0260c5d63a18f7 (patch) | |
tree | 34af1fa64a63618660187ae58ad182665a1861ef /arch/powerpc/sysdev | |
parent | [POWERPC] Export copy_4K_page() (diff) | |
parent | Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/... (diff) | |
download | linux-c547fc28ab3e8716076fdaf4bd0260c5d63a18f7.tar.xz linux-c547fc28ab3e8716076fdaf4bd0260c5d63a18f7.zip |
Merge branch 'linux-2.6'
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r-- | arch/powerpc/sysdev/dart_iommu.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c index e32fadde1f77..03b4477dd7f0 100644 --- a/arch/powerpc/sysdev/dart_iommu.c +++ b/arch/powerpc/sysdev/dart_iommu.c @@ -139,6 +139,7 @@ wait_more: static void dart_flush(struct iommu_table *tbl) { + mb(); if (dart_dirty) { dart_tlb_invalidate_all(); dart_dirty = 0; @@ -172,9 +173,13 @@ static void dart_build(struct iommu_table *tbl, long index, uaddr += DART_PAGE_SIZE; } + /* make sure all updates have reached memory */ + mb(); + in_be32((unsigned __iomem *)dp); + mb(); + if (dart_is_u4) { rpn = index; - mb(); /* make sure all updates have reached memory */ while (npages--) dart_tlb_invalidate_one(rpn++); } else { |