diff options
40 files changed, 69 insertions, 62 deletions
diff --git a/Documentation/cachetlb.txt b/Documentation/cachetlb.txt index da42ab414c48..74a8b6fefa29 100644 --- a/Documentation/cachetlb.txt +++ b/Documentation/cachetlb.txt | |||
| @@ -88,12 +88,12 @@ changes occur: | |||
| 88 | This is used primarily during fault processing. | 88 | This is used primarily during fault processing. |
| 89 | 89 | ||
| 90 | 5) void update_mmu_cache(struct vm_area_struct *vma, | 90 | 5) void update_mmu_cache(struct vm_area_struct *vma, |
| 91 | unsigned long address, pte_t pte) | 91 | unsigned long address, pte_t *ptep) |
| 92 | 92 | ||
| 93 | At the end of every page fault, this routine is invoked to | 93 | At the end of every page fault, this routine is invoked to |
| 94 | tell the architecture specific code that a translation | 94 | tell the architecture specific code that a translation |
| 95 | described by "pte" now exists at virtual address "address" | 95 | now exists at virtual address "address" for address space |
| 96 | for address space "vma->vm_mm", in the software page tables. | 96 | "vma->vm_mm", in the software page tables. |
| 97 | 97 | ||
| 98 | A port may use this information in any way it so chooses. | 98 | A port may use this information in any way it so chooses. |
| 99 | For example, it could use this event to pre-load TLB | 99 | For example, it could use this event to pre-load TLB |
diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h index 3f0c59f6d8aa..71a243294142 100644 --- a/arch/alpha/include/asm/pgtable.h +++ b/arch/alpha/include/asm/pgtable.h | |||
| @@ -329,7 +329,7 @@ extern pgd_t swapper_pg_dir[1024]; | |||
| 329 | * tables contain all the necessary information. | 329 | * tables contain all the necessary information. |
| 330 | */ | 330 | */ |
| 331 | extern inline void update_mmu_cache(struct vm_area_struct * vma, | 331 | extern inline void update_mmu_cache(struct vm_area_struct * vma, |
| 332 | unsigned long address, pte_t pte) | 332 | unsigned long address, pte_t *ptep) |
| 333 | { | 333 | { |
| 334 | } | 334 | } |
| 335 | 335 | ||
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h index c2f1605de359..e085e2c545eb 100644 --- a/arch/arm/include/asm/tlbflush.h +++ b/arch/arm/include/asm/tlbflush.h | |||
| @@ -529,7 +529,8 @@ extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); | |||
| 529 | * cache entries for the kernels virtual memory range are written | 529 | * cache entries for the kernels virtual memory range are written |
| 530 | * back to the page. | 530 | * back to the page. |
| 531 | */ | 531 | */ |
| 532 | extern void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte); | 532 | extern void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, |
| 533 | pte_t *ptep); | ||
| 533 | 534 | ||
| 534 | #endif | 535 | #endif |
| 535 | 536 | ||
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c index ae88f2c3a6df..c45f9bb318ad 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c | |||
| @@ -149,9 +149,10 @@ make_coherent(struct address_space *mapping, struct vm_area_struct *vma, unsigne | |||
| 149 | * | 149 | * |
| 150 | * Note that the pte lock will be held. | 150 | * Note that the pte lock will be held. |
| 151 | */ | 151 | */ |
| 152 | void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte) | 152 | void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, |
| 153 | pte_t *ptep) | ||
| 153 | { | 154 | { |
| 154 | unsigned long pfn = pte_pfn(pte); | 155 | unsigned long pfn = pte_pfn(*ptep); |
| 155 | struct address_space *mapping; | 156 | struct address_space *mapping; |
| 156 | struct page *page; | 157 | struct page *page; |
| 157 | 158 | ||
diff --git a/arch/avr32/include/asm/pgtable.h b/arch/avr32/include/asm/pgtable.h index fecdda16f444..a9ae30c41e74 100644 --- a/arch/avr32/include/asm/pgtable.h +++ b/arch/avr32/include/asm/pgtable.h | |||
| @@ -325,7 +325,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | |||
| 325 | 325 | ||
| 326 | struct vm_area_struct; | 326 | struct vm_area_struct; |
| 327 | extern void update_mmu_cache(struct vm_area_struct * vma, | 327 | extern void update_mmu_cache(struct vm_area_struct * vma, |
| 328 | unsigned long address, pte_t pte); | 328 | unsigned long address, pte_t *ptep); |
| 329 | 329 | ||
| 330 | /* | 330 | /* |
| 331 | * Encode and decode a swap entry | 331 | * Encode and decode a swap entry |
diff --git a/arch/avr32/mm/tlb.c b/arch/avr32/mm/tlb.c index 06677be98ffb..0da23109f817 100644 --- a/arch/avr32/mm/tlb.c +++ b/arch/avr32/mm/tlb.c | |||
| @@ -101,7 +101,7 @@ static void update_dtlb(unsigned long address, pte_t pte) | |||
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | void update_mmu_cache(struct vm_area_struct *vma, | 103 | void update_mmu_cache(struct vm_area_struct *vma, |
| 104 | unsigned long address, pte_t pte) | 104 | unsigned long address, pte_t *ptep) |
| 105 | { | 105 | { |
| 106 | unsigned long flags; | 106 | unsigned long flags; |
| 107 | 107 | ||
| @@ -110,7 +110,7 @@ void update_mmu_cache(struct vm_area_struct *vma, | |||
| 110 | return; | 110 | return; |
| 111 | 111 | ||
| 112 | local_irq_save(flags); | 112 | local_irq_save(flags); |
| 113 | update_dtlb(address, pte); | 113 | update_dtlb(address, *ptep); |
| 114 | local_irq_restore(flags); | 114 | local_irq_restore(flags); |
| 115 | } | 115 | } |
| 116 | 116 | ||
diff --git a/arch/cris/include/asm/pgtable.h b/arch/cris/include/asm/pgtable.h index 1fcce00f01f4..99ea6cd1b143 100644 --- a/arch/cris/include/asm/pgtable.h +++ b/arch/cris/include/asm/pgtable.h | |||
| @@ -270,7 +270,7 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; /* defined in head.S */ | |||
| 270 | * Actually I am not sure on what this could be used for. | 270 | * Actually I am not sure on what this could be used for. |
| 271 | */ | 271 | */ |
| 272 | static inline void update_mmu_cache(struct vm_area_struct * vma, | 272 | static inline void update_mmu_cache(struct vm_area_struct * vma, |
| 273 | unsigned long address, pte_t pte) | 273 | unsigned long address, pte_t *ptep) |
| 274 | { | 274 | { |
| 275 | } | 275 | } |
| 276 | 276 | ||
diff --git a/arch/frv/include/asm/pgtable.h b/arch/frv/include/asm/pgtable.h index 22c60692b551..c18b0d32e636 100644 --- a/arch/frv/include/asm/pgtable.h +++ b/arch/frv/include/asm/pgtable.h | |||
| @@ -505,7 +505,7 @@ static inline int pte_file(pte_t pte) | |||
| 505 | /* | 505 | /* |
| 506 | * preload information about a newly instantiated PTE into the SCR0/SCR1 PGE cache | 506 | * preload information about a newly instantiated PTE into the SCR0/SCR1 PGE cache |
| 507 | */ | 507 | */ |
| 508 | static inline void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t pte) | 508 | static inline void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *ptep) |
| 509 | { | 509 | { |
| 510 | struct mm_struct *mm; | 510 | struct mm_struct *mm; |
| 511 | unsigned long ampr; | 511 | unsigned long ampr; |
diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h index 69bf13857a9f..c3286f42e501 100644 --- a/arch/ia64/include/asm/pgtable.h +++ b/arch/ia64/include/asm/pgtable.h | |||
| @@ -462,7 +462,7 @@ pte_same (pte_t a, pte_t b) | |||
| 462 | return pte_val(a) == pte_val(b); | 462 | return pte_val(a) == pte_val(b); |
| 463 | } | 463 | } |
| 464 | 464 | ||
