aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/mm/mem.c')
-rw-r--r--arch/powerpc/mm/mem.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 0650de74d0b3..55b5860ed3c9 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -47,6 +47,9 @@
47#include <asm/prom.h> 47#include <asm/prom.h>
48#include <asm/lmb.h> 48#include <asm/lmb.h>
49#include <asm/sections.h> 49#include <asm/sections.h>
50#ifdef CONFIG_PPC64
51#include <asm/vdso.h>
52#endif
50 53
51#include "mmu_decl.h" 54#include "mmu_decl.h"
52 55
@@ -334,7 +337,7 @@ void flush_dcache_icache_page(struct page *page)
334 void *start = kmap_atomic(page, KM_PPC_SYNC_ICACHE); 337 void *start = kmap_atomic(page, KM_PPC_SYNC_ICACHE);
335 __flush_dcache_icache(start); 338 __flush_dcache_icache(start);
336 kunmap_atomic(start, KM_PPC_SYNC_ICACHE); 339 kunmap_atomic(start, KM_PPC_SYNC_ICACHE);
337#elif defined(CONFIG_8xx) 340#elif defined(CONFIG_8xx) || defined(CONFIG_PPC64)
338 /* On 8xx there is no need to kmap since highmem is not supported */ 341 /* On 8xx there is no need to kmap since highmem is not supported */
339 __flush_dcache_icache(page_address(page)); 342 __flush_dcache_icache(page_address(page));
340#else 343#else
@@ -463,18 +466,18 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
463 if (pgdir == NULL) 466 if (pgdir == NULL)
464 return; 467 return;
465 468
466 ptep = find_linux_pte(pgdir, ea); 469 ptep = find_linux_pte(pgdir, address);
467 if (!ptep) 470 if (!ptep)
468 return; 471 return;
469 472
470 vsid = get_vsid(vma->vm_mm->context.id, ea); 473 vsid = get_vsid(vma->vm_mm->context.id, address);
471 474
472 local_irq_save(flags); 475 local_irq_save(flags);
473 tmp = cpumask_of_cpu(smp_processor_id()); 476 tmp = cpumask_of_cpu(smp_processor_id());
474 if (cpus_equal(vma->vm_mm->cpu_vm_mask, tmp)) 477 if (cpus_equal(vma->vm_mm->cpu_vm_mask, tmp))
475 local = 1; 478 local = 1;
476 479
477 __hash_page(ea, pte_val(pte) & (_PAGE_USER|_PAGE_RW), vsid, ptep, 480 __hash_page(address, pte_val(pte) & (_PAGE_USER|_PAGE_RW), vsid, ptep,
478 0x300, local); 481 0x300, local);
479 local_irq_restore(flags); 482 local_irq_restore(flags);
480#endif 483#endif