forked from Minki/linux
Rename page argument of flush_cache_page to something more descriptive.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
8f91ed6c2f
commit
6ec25809c1
@ -368,14 +368,14 @@ static void r4k_flush_cache_mm(struct mm_struct *mm)
|
||||
|
||||
struct flush_cache_page_args {
|
||||
struct vm_area_struct *vma;
|
||||
unsigned long page;
|
||||
unsigned long addr;
|
||||
};
|
||||
|
||||
static inline void local_r4k_flush_cache_page(void *args)
|
||||
{
|
||||
struct flush_cache_page_args *fcp_args = args;
|
||||
struct vm_area_struct *vma = fcp_args->vma;
|
||||
unsigned long page = fcp_args->page;
|
||||
unsigned long addr = fcp_args->addr;
|
||||
int exec = vma->vm_flags & VM_EXEC;
|
||||
struct mm_struct *mm = vma->vm_mm;
|
||||
pgd_t *pgdp;
|
||||
@ -390,11 +390,11 @@ static inline void local_r4k_flush_cache_page(void *args)
|
||||
if (cpu_context(smp_processor_id(), mm) == 0)
|
||||
return;
|
||||
|
||||
page &= PAGE_MASK;
|
||||
pgdp = pgd_offset(mm, page);
|
||||
pudp = pud_offset(pgdp, page);
|
||||
pmdp = pmd_offset(pudp, page);
|
||||
ptep = pte_offset(pmdp, page);
|
||||
addr &= PAGE_MASK;
|
||||
pgdp = pgd_offset(mm, addr);
|
||||
pudp = pud_offset(pgdp, addr);
|
||||
pmdp = pmd_offset(pudp, addr);
|
||||
ptep = pte_offset(pmdp, addr);
|
||||
|
||||
/*
|
||||
* If the page isn't marked valid, the page cannot possibly be
|
||||
@ -411,12 +411,12 @@ static inline void local_r4k_flush_cache_page(void *args)
|
||||
*/
|
||||
if ((mm == current->active_mm) && (pte_val(*ptep) & _PAGE_VALID)) {
|
||||
if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) {
|
||||
r4k_blast_dcache_page(page);
|
||||
r4k_blast_dcache_page(addr);
|
||||
if (exec && !cpu_icache_snoops_remote_store)
|
||||
r4k_blast_scache_page(page);
|
||||
r4k_blast_scache_page(addr);
|
||||
}
|
||||
if (exec)
|
||||
r4k_blast_icache_page(page);
|
||||
r4k_blast_icache_page(addr);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -425,11 +425,11 @@ static inline void local_r4k_flush_cache_page(void *args)
|
||||
* Do indexed flush, too much work to get the (possible) TLB refills
|
||||
* to work correctly.
|
||||
*/
|
||||
page = INDEX_BASE + (page & (dcache_size - 1));
|
||||
addr = INDEX_BASE + (addr & (dcache_size - 1));
|
||||
if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) {
|
||||
r4k_blast_dcache_page_indexed(page);
|
||||
r4k_blast_dcache_page_indexed(addr);
|
||||
if (exec && !cpu_icache_snoops_remote_store)
|
||||
r4k_blast_scache_page_indexed(page);
|
||||
r4k_blast_scache_page_indexed(addr);
|
||||
}
|
||||
if (exec) {
|
||||
if (cpu_has_vtag_icache) {
|
||||
@ -438,16 +438,17 @@ static inline void local_r4k_flush_cache_page(void *args)
|
||||
if (cpu_context(cpu, mm) != 0)
|
||||
drop_mmu_context(mm, cpu);
|
||||
} else
|
||||
r4k_blast_icache_page_indexed(page);
|
||||
r4k_blast_icache_page_indexed(addr);
|
||||
}
|
||||
}
|
||||
|
||||
static void r4k_flush_cache_page(struct vm_area_struct *vma, unsigned long page, unsigned long pfn)
|
||||
static void r4k_flush_cache_page(struct vm_area_struct *vma,
|
||||
unsigned long addr, unsigned long pfn)
|
||||
{
|
||||
struct flush_cache_page_args args;
|
||||
|
||||
args.vma = vma;
|
||||
args.page = page;
|
||||
args.addr = addr;
|
||||
|
||||
on_each_cpu(local_r4k_flush_cache_page, &args, 1, 1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user