diff options
author | Chris Zankel <chris@zankel.net> | 2007-09-06 04:38:18 -0400 |
---|---|---|
committer | Chris Zankel <chris@zankel.net> | 2008-02-13 19:58:51 -0500 |
commit | b67360db143448be1f6d68835c6d0cc43837667f (patch) | |
tree | 9619e20dd17684ae5cf1d2c845b4acdc134e86be /arch/xtensa | |
parent | 49883224f6665e2b056fc3e7325b3bba9d1ff2c4 (diff) |
[XTENSA] Flush the page-address in update-mmu instead of user-address
The TLB entry for the user address doesn't exist at the time we
want to flush the caches, so use the page address. Note that processor
configurations with cache-aliasing issues are treated separately.
Signed-off-by: Chris Zankel <chris@zankel.net>
Diffstat (limited to 'arch/xtensa')
-rw-r--r-- | arch/xtensa/mm/cache.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/xtensa/mm/cache.c b/arch/xtensa/mm/cache.c index 42bfb695a170..3ba990c67676 100644 --- a/arch/xtensa/mm/cache.c +++ b/arch/xtensa/mm/cache.c | |||
@@ -180,9 +180,9 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t pte) | |||
180 | #else | 180 | #else |
181 | if (!PageReserved(page) && !test_bit(PG_arch_1, &page->flags) | 181 | if (!PageReserved(page) && !test_bit(PG_arch_1, &page->flags) |
182 | && (vma->vm_flags & VM_EXEC) != 0) { | 182 | && (vma->vm_flags & VM_EXEC) != 0) { |
183 | unsigned long vaddr = addr & PAGE_MASK; | 183 | unsigned long paddr = (unsigned long) page_address(page); |
184 | __flush_dcache_page(vaddr); | 184 | __flush_dcache_page(paddr); |
185 | __invalidate_icache_page(vaddr); | 185 | __invalidate_icache_page(paddr); |
186 | set_bit(PG_arch_1, &page->flags); | 186 | set_bit(PG_arch_1, &page->flags); |
187 | } | 187 | } |
188 | #endif | 188 | #endif |