diff options
Diffstat (limited to 'arch/powerpc/mm/mem.c')
-rw-r--r-- | arch/powerpc/mm/mem.c | 11 |
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 |