MIPS: mm: c-r4k: Add support for flushing user pages from cache
authorMarkos Chandras <markos.chandras@imgtec.com>
Thu, 16 Jan 2014 13:11:08 +0000 (13:11 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 26 Mar 2014 22:09:19 +0000 (23:09 +0100)
Use the userspace cache flushing functions if the interrupted
process is a userspace one.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
arch/mips/mm/c-r4k.c

index 6332a9e84f013ab622c2703d1263fb398d860203..9b223e07f7847b5c9e51444fbac2c60f92450a52 100644 (file)
@@ -562,7 +562,8 @@ static inline void local_r4k_flush_cache_page(void *args)
        }
 
        if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) {
-               r4k_blast_dcache_page(addr);
+               vaddr ? r4k_blast_dcache_page(addr) :
+                       r4k_blast_dcache_user_page(addr);
                if (exec && !cpu_icache_snoops_remote_store)
                        r4k_blast_scache_page(addr);
        }
@@ -573,7 +574,8 @@ 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(addr);
+                       vaddr ? r4k_blast_icache_page(addr) :
+                               r4k_blast_icache_user_page(addr);
        }
 
        if (vaddr) {