| .. | .. |
|---|
| 16 | 16 | #include <linux/mutex.h> |
|---|
| 17 | 17 | #include <linux/fs.h> |
|---|
| 18 | 18 | #include <linux/highmem.h> |
|---|
| 19 | | -#include <asm/pgtable.h> |
|---|
| 20 | 19 | #include <asm/mmu_context.h> |
|---|
| 21 | 20 | #include <asm/cache_insns.h> |
|---|
| 22 | 21 | #include <asm/cacheflush.h> |
|---|
| .. | .. |
|---|
| 183 | 182 | * accessed with (hence cache set) is in accord with the physical |
|---|
| 184 | 183 | * address (i.e. tag). It's no different here. |
|---|
| 185 | 184 | * |
|---|
| 186 | | - * Caller takes mm->mmap_sem. |
|---|
| 185 | + * Caller takes mm->mmap_lock. |
|---|
| 187 | 186 | */ |
|---|
| 188 | 187 | static void sh4_flush_cache_mm(void *arg) |
|---|
| 189 | 188 | { |
|---|
| .. | .. |
|---|
| 208 | 207 | struct page *page; |
|---|
| 209 | 208 | unsigned long address, pfn, phys; |
|---|
| 210 | 209 | int map_coherent = 0; |
|---|
| 211 | | - pgd_t *pgd; |
|---|
| 212 | | - pud_t *pud; |
|---|
| 213 | 210 | pmd_t *pmd; |
|---|
| 214 | 211 | pte_t *pte; |
|---|
| 215 | 212 | void *vaddr; |
|---|
| .. | .. |
|---|
| 223 | 220 | if (cpu_context(smp_processor_id(), vma->vm_mm) == NO_CONTEXT) |
|---|
| 224 | 221 | return; |
|---|
| 225 | 222 | |
|---|
| 226 | | - pgd = pgd_offset(vma->vm_mm, address); |
|---|
| 227 | | - pud = pud_offset(pgd, address); |
|---|
| 228 | | - pmd = pmd_offset(pud, address); |
|---|
| 223 | + pmd = pmd_off(vma->vm_mm, address); |
|---|
| 229 | 224 | pte = pte_offset_kernel(pmd, address); |
|---|
| 230 | 225 | |
|---|
| 231 | 226 | /* If the page isn't present, there is nothing to do here. */ |
|---|