Commit dbbb06b7 authored by Vitaly Bordug's avatar Vitaly Bordug Committed by Paul Mackerras

[POWERPC] 8xx: platform specific mmu updates

This is just a straight port of the same done in arch/ppc
by Marcelo Tosatti. One used to be
[PATCH] ppc32 8xx: update_mmu_cache() needs unconditional tlbie,
commit eb07d964

In a nutshell, the board is nearly stuck without this, yet without any
visible failure - being just very slow.
Signed-off-by: default avatarVitaly Bordug <vbordug@ru.mvista.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent f25222b9
...@@ -490,9 +490,6 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, ...@@ -490,9 +490,6 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
!cpu_has_feature(CPU_FTR_NOEXECUTE) && !cpu_has_feature(CPU_FTR_NOEXECUTE) &&
pfn_valid(pfn)) { pfn_valid(pfn)) {
struct page *page = pfn_to_page(pfn); struct page *page = pfn_to_page(pfn);
if (!PageReserved(page)
&& !test_bit(PG_arch_1, &page->flags)) {
if (vma->vm_mm == current->active_mm) {
#ifdef CONFIG_8xx #ifdef CONFIG_8xx
/* On 8xx, cache control instructions (particularly /* On 8xx, cache control instructions (particularly
* "dcbst" from flush_dcache_icache) fault as write * "dcbst" from flush_dcache_icache) fault as write
...@@ -503,6 +500,9 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, ...@@ -503,6 +500,9 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
*/ */
_tlbie(address); _tlbie(address);
#endif #endif
if (!PageReserved(page)
&& !test_bit(PG_arch_1, &page->flags)) {
if (vma->vm_mm == current->active_mm) {
__flush_dcache_icache((void *) address); __flush_dcache_icache((void *) address);
} else } else
flush_dcache_icache_page(page); flush_dcache_icache_page(page);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment